0
我的問題獲取一行顯示兩個空值。左連接不能正確地得到它
我的表顯示如下
FROM tuote;
ttunnus | tnimi | kuvaus | suositushinta | tmtunnus
---------+-----------------------+--------------------+---------------+----------
111 | Trimmeri TRCee | tehokas 4-tahtinen | 179.00 | 1
112 | Trimmerisiima Cee | laadukas siima | 6.99 | 1
113 | Moottorisaha MSCee RR | robusti ja raskas | 559.00 | 1
114 | Trimmerisiima Y | yleissiima | 3.99 | 2
115 | Lapio L | kevyt yleislapio | 23.95 | 2
(5 rows)
FROM kategoria;
ktunnus | knimi
---------+-----------
11 | puutarha
14 | valaistus
12 | metsä
13 | lumityöt
(4 rows)
FROM tuote_kategoria;
ttunnus | ktunnus
---------+---------
111 | 11
112 | 11
113 | 11
113 | 12
114 | 11
115 | 11
115 | 13
(7 rows)
我需要從表信息與valaistus
ON NULL values in tnimi and suositushinta
knimi | tnimi | suositushinta
-----------+-----------------------+---------------
puutarha | Trimmeri TRCee | 179.00
puutarha | Trimmerisiima Cee | 6.99
puutarha | Moottorisaha MSCee RR | 559.00
metsä | Moottorisaha MSCee RR | 559.00
puutarha | Trimmerisiima Y | 3.99
puutarha | Lapio L | 23.95
lumityöt | Lapio L | 23.95
valaistus | |
(8 rows)
,但我只得到像這樣不正確的方式。
SELECT t2.knimi, t1.tnimi, t1.suositushinta
FROM tuote t1, tuote_kategoria
LEFT JOIN kategoria t2 ON t2.ktunnus = tuote_kategoria.ktunnus
WHERE t1.ttunnus = tuote_kategoria.ttunnus;
knimi | tnimi | suositushinta
----------+-----------------------+---------------
puutarha | Trimmeri TRCee | 179.00
puutarha | Trimmerisiima Cee | 6.99
puutarha | Moottorisaha MSCee RR | 559.00
metsä | Moottorisaha MSCee RR | 559.00
puutarha | Trimmerisiima Y | 3.99
puutarha | Lapio L | 23.95
lumityöt | Lapio L | 23.95
(7 rows)
您是外側連接'kategoria'到其他表,當它應該是反過來的。順便說一句:您將1992年以前的逗號分隔連接語法('FROM tuote t1,tuote_kategoria')與適當的ANSI連接('LEFT JOIN kategoria t2 ON ...')混合在一起。你不應該再使用舊的連接語法。 –
在逗號分隔的項目之前評估JOIN鏈。 – jarlh
永遠不要將隱式聯接與顯式聯接混合使用 –