【发布时间】:2023-01-29 20:28:09
【问题描述】:
在这里查询我有https://www.db-fiddle.com/f/32Kc3QisUEwmSM8EmULpgd/1
SELECT p.prank, d.dare
FROM dares d
INNER JOIN pranks p ON p.id = d.prank_id
WHERE d.condo_id = 1;
我有一个 ID 为 1 的 condo,它与 dares 有唯一联系,与恶作剧有联系,与 condos_pranks 有唯一联系
我想从两个表中获取所有独特的恶作剧,我使用上面的查询来获取关系
dares to pranks,预期结果是L,M,N - Yes,No,Maybe,这是正确的,但我也想把那些放在condos_pranks中,ID是1,4,5,6 = L,O,P,Q
所以我尝试用左连接加入表,因为它可能没有condos_pranks行
SELECT p.prank, d.dare
FROM dares d
INNER JOIN pranks p ON p.id = d.prank_id
LEFT JOIN condos_pranks pd ON pd.condo_id = d.condo_id AND pd.prank_id = p.id
WHERE d.condo_id = 1;
但结果与第一个相同,我想要的是
| prank | dare |
|---|---|
| L | Yes |
| M | No |
| N | Maybe |
| O | No |
| P | No |
| Q | No |
如果 condos_pranks 的 prank_id 不在 dares 中,则默认为 No = 2
如何连接它?
【问题讨论】:
-
这是给你的表结构吗?还是您正在创建的?似乎这里进行了一些循环连接,为简单起见可以将其删除。