Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 2.267 pregleda

Najnovija ↓

2 ili 3 tabele - upit za ispis polja 30.04.2009. u 17:45 · pre 213 meseci #1
Pozdrav!

Imam sljedeći problem:

Imam 3 tabele!

Tabela - Kategorije (idkat, nazivkategorije)

Tabela - Podkategorije (idpodkat, idkat, nazivpodkategorije)

Tabela - Artikli (idartikla, idpodkat, nazivartikla)

Treba mi upit koji će mi ispisati nazivkategorije za idartikla = 50 ?

Kako da riješim ovo? Hvala unaprijed!
Potpis
:::===>>> www.DOWNLOAD.ba <<<===::::::===>>> www.DOWNLOAD.co.ba <<<===:::
Re: 2 ili 3 tabele - upit za ispis polja 30.04.2009. u 18:13 · pre 213 meseci #2
Netestirano...

Code:

SELECT nazivkategorije FROM Kategorije 
JOIN Podkategorije USING(idKat)
JOIN Artikli USING(idPodKat)
WHERE idartikla = 50;
Re: 2 ili 3 tabele - upit za ispis polja 30.04.2009. u 18:31 · pre 213 meseci #4
A jesi ti siguran da je ovo prava struktura tabele :

Tabela - Kategorije (idkat, nazivkategorije) ???


Code:


-- Ovo radi ....

CREATE TABLE Kategorije
(
idKat INTEGER,
nazivKategorije VARCHAR(40)
);

CREATE TABLE Podkategorije
(
idPodKat INTEGER,
idKat INTEGER,
nazivpodkategorije VARCHAR(50)
);

CREATE TABLE Artikli
(
idArtikla INTEGER,
idPodKat INTEGER,
nazivArtikla VARCHAR(50)
);

SELECT nazivkategorije FROM Kategorije
JOIN Podkategorije USING(idKat)
JOIN Artikli USING(idPodKat)
WHERE idartikla = 50;
Re: 2 ili 3 tabele - upit za ispis polja 30.04.2009. u 18:31 · pre 213 meseci #5
Probaj i ovako:
Code:

SELECT k.nazivkategorije
FROM kategorije k, podkategorije pk, artikli a
WHERE a.idartikla = 50 AND a.idpodkat = pk.idpodkat AND pk.idkat = k.idkat
Re: 2 ili 3 tabele - upit za ispis polja 30.04.2009. u 18:36 · pre 213 meseci #6
moralo bi da radi to sto ti je igor napisao:

Code:

mysql> create table Kategorije (idkat int, nazivkategorije int);
Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> create table Podkategorije (idpodkat int, idkat int, nazivpodkategorije int);
Query OK, 0 rows affected, 2 warnings (0.00 sec)

mysql> create table Artikli (idartikla int, idpodkat int, nazivartikla int);
Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> SELECT nazivkategorije FROM Kategorije 
    -> JOIN Podkategorije USING(idKat)
    -> JOIN Artikli USING(idPodKat)
    -> WHERE idartikla = 50;
Empty set (0.00 sec)

mysql> insert into Kategorije values (1,2), (2, 3), (3, 4);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> insert into Podkategorije values (10, 2, 10), (11, 2, 11);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> insert into Artikli values (50, 10, 60), (77,11,77);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

mysql> SELECT nazivkategorije FROM Kategorije 
    -> JOIN Podkategorije USING(idKat)
    -> JOIN Artikli USING(idPodKat)
    -> WHERE idartikla = 50;
+-----------------+
| nazivkategorije |
+-----------------+
|               3 | 
+-----------------+
1 row in set (0.01 sec)

mysql> 


doduse, ja bi ga napisao malo drugacije (samo sam dodao imena tabela pre imena polja kako bi mysql znao tacno sta hoces):

Code:

SELECT Kategorije.nazivkategorije FROM Kategorije 
JOIN Podkategorije USING(idKat)
JOIN Artikli USING(idPodKat)
WHERE Artikli.idartikla = 50;

Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme