gpt4 book ai didi

mysql - 当其中一个联接表中没有行可用时,左联接不返回任何行

转载 作者:行者123 更新时间:2023-11-29 01:42:59 25 4
gpt4 key购买 nike

SELECT * 
FROM `user`
LEFT JOIN `user_group`
ON `user_group`.`userid` = `user`.`userid`
LEFT JOIN `email_template`
ON `email_template`.`user_id`=`user`.`userid`
WHERE `user`.`agent_id`='123'
AND `email_template`.`type`='advertise'

那是我的sql语句。我正在加入表用户、用户组和电子邮件模板。问题是对于我正在查询的用户,表中没有广告类型的 email_template,因此整个查询不返回任何行。相反,我想要 1 行,email_template 类型列为空。

最佳答案

您是否尝试将 email_template 过滤器移动到连接条件?

这样做会在连接上应用过滤器而不是 WHERE 子句。如果您在 WHERE 上应用过滤器,那么您基本上是在执行 INNER JOIN,如果没有满足条件,则不会返回任何行:

SELECT * 
FROM `user`
LEFT JOIN `user_group`
ON `user_group`.`userid` = `user`.`userid`
LEFT JOIN `email_template`
ON `email_template`.`user_id`=`user`.`userid`
AND `email_template`.`type`='advertise'
WHERE `user`.`agent_id`='123'

关于mysql - 当其中一个联接表中没有行可用时,左联接不返回任何行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14522878/

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