Autor | Zpráva | ||
---|---|---|---|
Pan X Profil |
#1 · Zasláno: 22. 8. 2011, 08:57:18
Zdravím,
mám problém se spojením 3 tabulek v databázi Používám tento zápis: SELECT suroviny.mnozstvi, surovina.nazev AS surovina, jednotka.nazev AS jednotka FROM suroviny JOIN surovina ON surovina.id_surovina = suroviny.id_surovina JOIN jednotka ON jednotka.id_jednotka = suroviny.id_jednotka WHERE id_receptu = 4 Za normálních okolností všechno funguje a veci to vypisuje tak, jak má 600g kuřecích prs 2 lžíce tatarské omáčky atd... Ale problém dělají položky, kterým chybí jedna (množství) nebo druhá (jednotka) hodnota. Např. sůl má pouze název suroviny a nemá jednotku což znamená že se v tomto sql dotazu nevypíše. Může někdo poradit, jak upravit tento sql aby se vypsala všechna data (i ta, která mají v některých sloupcích uloženo null) Přikládám ukázku databazá: http://work.zaruba-ondrej.cz/forums/db_data.png Jak je vidět sql dotaz vypíše pouze údaje které nemají v místě suroviny.id_surovina 0 Předem díky |
||
PostCC Profil |
#2 · Zasláno: 22. 8. 2011, 09:21:10
Pan X:
Zajímá vás rozdíl mezi JOIN a LEFT JOIN. Oproti vámi použitému zápisu LEFT join vybere všechny odpovídající položky z levé tabulky bez ohledu na to, zda v pravé tabulce existuje či neexistuje odpovídající záznam. |
||
Tori Profil |
#3 · Zasláno: 22. 8. 2011, 09:22:22
JOIN je totéž jako INNER JOIN -> potřebujete LEFT JOIN.
|
||
Pan X Profil |
#4 · Zasláno: 22. 8. 2011, 09:46:58
Díky
|
||
Časová prodleva: 13 let
|
0