Php 左外连接查询中的简单逻辑

Php 左外连接查询中的简单逻辑,php,mysql,database,Php,Mysql,Database,我有两张表tblSiteVisits和tblConformedList以及Colums,如下所示 tblsitevisions Name | EmailAddress 姓名|电子邮件地址 tblConformedList Name | EmailAddress | ContactNo | Location | Conform_Status 姓名|电子邮件地址|联系人编号|位置|符合|状态 第一个表包含所有站点访问用户的姓名和电子邮件地址 现在,在第二个表中,Co

我有两张表tblSiteVisits和tblConformedList以及Colums,如下所示

tblsitevisions

Name | EmailAddress 姓名|电子邮件地址 tblConformedList

Name | EmailAddress | ContactNo | Location | Conform_Status 姓名|电子邮件地址|联系人编号|位置|符合|状态 第一个表包含所有站点访问用户的姓名和电子邮件地址

现在,在第二个表中,Conform_状态将根据站点访问时的客户端可用性设置为1或0

如果没有,我将填写ContactNo和Location,并用Conform_Status=0更新表格

现在我想要的是,通过关联join中的EmailAddress和ConformedList中Conform状态为0的行,从表TBLSiteVisites和tblConformedList中获取人员的姓名和电子邮件地址

这是已提供ContactNo和更新位置但未提供Conform_状态的人员列表


提前感谢

可能会对您有所帮助

 select t1.* from tblSiteVisits t1 inner join tblConformedList t2 on  
 t1.EmailAddress=t2.EmailAddress where t2.Conform_Status=0
请尝试并分享您的反馈。

抱歉,如果您只需要
符合
状态为0的行,您不需要
左连接
,您需要
内部连接

SELECT v.* 
FROM tblSiteVisits v 
JOIN tblConformedList c 
ON v.EmailAddress = c.EmailAddress 
WHERE c.Conform_Status=0
因为
c.Conform\u Status=0
将过滤掉它不是0的所有行,包括空的行,所以
tblsitevists
中在
tblConformedList
中没有对应行的行将被过滤掉-因此只需使用
内部联接即可

SELECT v.* 
FROM tblSiteVisits v 
JOIN tblConformedList c 
ON v.EmailAddress = c.EmailAddress 
WHERE c.Conform_Status=0
如果希望所有行都有一个条目,则可以左join,将where子句放在on子句中,或在where子句中添加
或Conform\u Status为NULL

SELECT v.* 
FROM tblSiteVisits v 
LEFT JOIN tblConformedList c 
ON v.EmailAddress = c.EmailAddress 
AND c.Conform_Status=0

这将显示
tblsitevisions
中的每一行,如果可能,还将显示
tblConformedList
的数据,但仅当
符合状态实际为0时

非常感谢您的回复。上面的查询不起作用,我不知道为什么我尝试了,也就是说,我发布的这个内部连接不起作用,因为tblConformedList最初是空的。一旦通过电话确认现场访问符合Conform_状态1或0,行将插入tblConformedList。如果最初tblConformedList为空,conformed=0的
左连接也将不起作用,因为在没有行的情况下conformed不能为0。您希望在ON中显示
conformed=0
,或者
conformed=0或conformed为空
。我编辑了我的答案:第二个查询确实应该是左连接。