Mysql 当其中一个联接表中没有行可用时,左联接不返回任何行
这是我的sql语句。我正在加入用户表、用户组和电子邮件模板。问题是,对于我正在查询的用户,表中没有advertise类型的电子邮件模板,因此整个查询不返回任何行。相反,我想要1行,电子邮件模板类型列为空。您是否尝试将Mysql 当其中一个联接表中没有行可用时,左联接不返回任何行,mysql,Mysql,这是我的sql语句。我正在加入用户表、用户组和电子邮件模板。问题是,对于我正在查询的用户,表中没有advertise类型的电子邮件模板,因此整个查询不返回任何行。相反,我想要1行,电子邮件模板类型列为空。您是否尝试将电子邮件模板过滤器移动到加入条件 这样做会在联接上应用筛选器,而不是WHERE子句。如果在中应用过滤器,则基本上执行的是内部联接,如果没有符合条件,则不会返回任何行: SELECT * FROM `user` LEFT JOIN `user_group` ON `user_
电子邮件模板过滤器移动到加入条件
这样做会在联接上应用筛选器,而不是WHERE
子句。如果在中应用过滤器
,则基本上执行的是内部联接
,如果没有符合条件,则不会返回任何行:
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'
您是否尝试将电子邮件\u模板
筛选器移动到加入条件
这样做会在联接上应用筛选器,而不是WHERE
子句。如果在中应用过滤器
,则基本上执行的是内部联接
,如果没有符合条件,则不会返回任何行:
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'
在您加入时,移动条件以选择email\u templatetype='Advertised'
。基本上,WHERE
子句会对记录进行筛选,因为它与条件匹配
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'
在您加入时,移动条件以选择email\u templatetype='Advertised'
。基本上,WHERE
子句会对记录进行筛选,因为它与条件匹配
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'