我的问题是让一行显示两个空值。
我的表格如下所示
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)
答案 0 :(得分:1)
您希望显示kategoria
条记录,即使它们在其他表格中没有匹配项也是如此。因此选择from kategoria
并将其他两个表连接到外部:
select
k.knimi,
t.tnimi,
t.suositushinta
from kategoria k
left join tuote_kategoria tk on tk.ktunnus = k.ktunnus
left join tuote t on t.ttunnus = tk.ttunnus;