gpt4 book ai didi

MySQL 左连接显示缺失行为 NULL

转载 作者:行者123 更新时间:2023-11-29 16:41:40 25 4
gpt4 key购买 nike

我有 2 张 table

表:

recip
recipid | recipname
1 | Recip1
2 | Recip2

和表:

recipuser
recipid | userid
1 | 1
2 | 1
1 | 2

所以用户 ID 2 有 1 个食谱

我想要实现的结果是显示给定用户 ID 匹配或为 null 的所有“recip”行,EG:

SELECT r.recipid, r.recipname, ru.userid
FROM recip r
left JOIN recipuser ru ON r.recipid = ru.recipid
WHERE ru.userid = 2 OR ru.userid IS NULL

结果:

recipid | recipname | userid
1 | Recip1 | 2

我想要得到:

recipid | recipname | userid
1 | Recip1 | 2
2 | Recip2 | NULL

如何为给定用户 ID 的每一行显示带有 userid 或 NULL 的配方中的所有行?

感谢您的帮助。

最佳答案

WHERE 逻辑移至 ON 子句:

SELECT r.recipid, r.recipname, ru.userid
FROM recip r
LEFT JOIN recipuser ru
ON r.recipid = ru.recipid AND ru.userid = 2;

当前查询的问题是 WHERE 子句过滤掉了您想要显示的不匹配记录。

关于MySQL 左连接显示缺失行为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53314680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com