Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno SQL - priradenie riadku druhej tabuľky, ak existuje, ak nie, zobrazí sa len riadok prvej

Povedzme, že mám tabuľku FAKTURA s týmito dôležitými položkami:

ID
Meno
PPD_ID

Ďalej mám tabuľku PPD, s týmito dôležitými položkami:

ID
Meno
Datum

Vytvorím príkaz SELECT:

select * from FAKTURA, PPD where FAKTURA.PPD_ID=PPD.ID

Problém je v tom, že mi to priradí len tie faktúry, kde bol vystavený aj PPD. Ja ale potrebujem, aby faktúry dalo všetky a ak existuje aj PPD k faktúre, aby sa priradilo k správnej fakúre. Takýto príkaz je nezmysel, takže ho ani skúšať nebudem, predpokladám, že by to k faktúram, ku ktorým nie je PPD, by postupne priraďovalo každé PPD:

select * from FAKTURA, PPD where FAKTURA.PPD_ID=PPD.ID or FAKTURA.PPD_ID=0

Viem, že je taká možnosť v SQL čo potrebujem, ale neviem si to teraz vybaviť ako to zapísať, lebo som to doteraz nikdy nepotreboval. Vedel by mi niekto poradiť?

Předmět Autor Datum
Bez záruky, neodzkoušeno... SELECT * FROM FAKTURA LEFT JOIN PPD ON FAKTURA.PPD_ID = PPD.ID ORDER BY…
MaSo 11.12.2008 13:45
MaSo
Skúsil som hľadať, tiež som niečo podobné s LEFT JOIN našiel, ale nebol som si istý, či je to použit…
msx. 11.12.2008 13:54
msx.
V takovem pripade bys mel pouzit LEFT OUTER JOIN, ne LEFT JOIN
Jan Fiala 11.12.2008 14:12
Jan Fiala
Ďakujem. Ale ako na to tak pozerám, zrejme to asi nebudem potrebovať. Musím potrebné položky pridať…
msx. 11.12.2008 14:20
msx.
Já bych řekl, že LEFT JOIN je to samé jako LEFT OUTER JOIN. Viz sql_join_left.asp PS: In some datab…
MaSo 11.12.2008 14:20
MaSo
Jo, a v nekterych je LEFT JOIN zase to same jako obycejny JOIN A pokud nenapise, pro jakou DB to chc…
Jan Fiala 11.12.2008 14:47
Jan Fiala
Neexistuje žiadna databáza, v ktorej by LEFT JOIN bolo to isté ako obyčajný JOIN. Podľa štandardu SQ… poslední
los 11.12.2008 16:23
los

Zpět do poradny Odpovědět na původní otázku Nahoru