Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 当其中一个联接表中没有行可用时,左联接不返回任何行_Mysql - Fatal编程技术网

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

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

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

您是否尝试将
电子邮件模板过滤器移动到加入条件

这样做会在联接上应用筛选器,而不是
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'