我有一张桌子:
表:Berichten列:ID,Bericht,Bericht,Klant_ID,Product_ID,Datum
我在其中有一行,并希望用与列中相同的klant_id向用户显示它,当我运行以下语句时,我得到10行
select
b.ID,
b.Product_id ,
b.Klant_id,
b.onderwerp
from BERICHTEN b, KLANTEN k
WHERE b.klant_id = (select ID from klanten where email = 'joris@am.nl')
Run Code Online (Sandbox Code Playgroud)
知道我为什么得到10行而不是1行?
你只是这样CROSS JOIN做JOIN:
select b.ID, b.Product_id, b.Klant_id, b.onderwerp
from BERICHTEN b inner join
KLANTEN k
on b.klant_id = k.id
where k.email = 'joris@am.nl';
Run Code Online (Sandbox Code Playgroud)
但是,使用时可能更容易理解exists:
select b.ID, b.Product_id, b.Klant_id, b.onderwerp
from BERICHTEN b
where exists (select 1 from KLANTEN k where k.id = b.klant_id and k.email = 'joris@am.nl');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |