Autor Zpráva
Petr1234
Profil *
Cau,

mam v databazi dve tabulky. V jedne mam ulozene reference a v druhe jsou ulozene fotky k danym referencim na ktere se odkazuji pomoci cisla radnu dane reference. Chtel bych ale vypsat na webu pouze ty reference, ktere maji nejakou fotku. Proste nejak v tom SQL dotazu ty tabulky propojit at mi vrati jen ty reference, ktere maji fotky.


Diky Petr
JersyWoo
Profil
Podívej se na mm.gene.cz na na funkci JOIN
ninja
Profil
tak se hod strukturu tabulek.

Obecne te zajima sql prikaz JOIN. Bude to neco na zpusob:

SELECT * FROM tabulka1 JOIN tabulka2 ON tabulka1.foreignkey = tabulka2.primarykey;
JersyWoo
Profil
Ono je možné i tvrdé napojení:
SELECT tabulka1.sloupecx, tabulka2.sloupecx FROM tabulka1,tabulka2 WHERE tabulka1.foreignkey = tabulka2.primarykey;
Petr1234
Profil *
No takze proto, abych vypsal jen ty, co maji v tabulce s fotkama nejake fotky jsem pouzil:

SELECT reference.id FROM reference,images WHERE reference.id=images.parent_id GROUP BY reference.id

No ale jak udelam opak? Ze vypisu jen ty co fotku NEMAJI? Zkusil jsem to zmenit na:

... WHERE reference.id!=images.parent_id GROUP BY ...

ale to vypisuje uplne vsechny i s fotkama tak i bez...
finc
Profil
Pro ty, co maji:
SELECT a.* FROM table AS a
INNER JOIN tableB AS b ON a.id = b.table

Pro ty co nemaji:
SELECT a.* FROM table AS a
LEFT JOIN tableB AS b ON a.id = b.table
WHERE b.table IS NULL

Možností je spousty :)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0