0

我有两个表 tblSiteVisits 和 tblConformedList 和列如下

tblSiteVisits

   姓名 | 电子邮件地址   

tblConformedList

   姓名 | 电子邮件地址 | 联系电话 | 位置 | Conform_Status

第一个表包含所有拥有 SiteVisits 的人的姓名和电子邮件地址

现在,在第二个表中,Conform_Status 将根据现场访问时间点的客户可用性设置为 1 或 0。

如果不是,我将填写 ContactNo 和 Location,并使用 Conform_Status = 0 更新表格。

现在我想要的是我想通过关联连接中的 EmailAddress 和 Conform_Status 为 0 的 tblConformedList 中的行来从表 tblSiteVisits 和 tblConformedList 中获取人员的姓名和电子邮件地址。

那是已提供 ContactNo 和 Location 以进行更新但未提供 Conform_Status 的人员列表。

提前致谢

4

2 回答 2

1

可能对你有帮助。

 select t1.* from tblSiteVisits t1 inner join tblConformedList t2 on  
 t1.EmailAddress=t2.EmailAddress where t2.Conform_Status=0

尝试并分享您的反馈。

于 2012-07-26T06:59:44.737 回答
0

抱歉,如果您需要Conform_Status为 0 的行,则不需要LEFT JOIN,您需要INNER JOIN

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

因为c.Conform_Status=0将过滤掉所有不为 0 的行,包括具有 NULL 的行,所以无论如何都将过滤tblSiteVisits其中没有对应行的行- 因此只需使用.tblConformedListINNER JOIN

如果您想要所有行的条目,那么您可以左连接,将 where 子句放在 on 子句中或OR Conform_Status IS NULL在 where 子句中添加一个。

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

这将显示 中的每一行tblSiteVisits,如果可能,显示 的数据tblConformedList,但仅当Conform_Status实际为 0 时。

于 2012-07-26T07:04:26.797 回答