已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
5天前关闭。
Improve this question
我试图在两个表之间进行查询,这样我就可以从一个表中获取所有活动雇员,而如果雇员是从另一个表中签名的,则可以从表单中获取所有雇员。
Example:
Table 1 Table 2
select * from tblEmpl select * from tblSign
select tblSign.sigdate,tblSign.sigtime,tblSign.sigact,tblSign.esignature,tblEmpl.fname,tblEmpl.lname,tblEmpl.location,tblEmpl.estatus,tblLocs.unit,tblLocs.descript,TblLocs.addr1,tblLocs.city,tblLocs.state,tblLocs.zip from tblSign left join tblEmpl on tblSign.eight_id = tblEmpl.eight_id left join tblLocs on tblEmpl.location=tblLocs.location where tblSign.formid='9648' and tblSign.sigact <> 'O' and tblEmpl.estatus='A' and tblEmpl.location='013' and tblSign.sigdate>='2022-11-01' order by tblSign.sigdate asc;
我使用了这个查询,但它只得到了所有签署表单的活动员工,而不是所有活动员工,如果他们签署了,还需要额外的列。
sigdate sigtime sigact fname lname
2022-11-01 00:00:00 3:16:35 PM A EMORY CORTEZ
1条答案
按热度按时间igetnqfo1#
您当前查询保留从tblSign到tblEmpl连接-即从tblSign获取所有记录,从tblEmpl获取匹配记录,从你的问题听起来你实际上想把它颠倒过来(即,获取与特定条件匹配的所有tblEmpl记录以及来自tblSign的任何匹配记录)。您还可以在WHERE子句中使用筛选器,根据来自tblSign的特定条件筛选集合-假定您将“t对于来自tblEmpl的每个结果都没有匹配的tblSign记录,则这些过滤器基本上会将最终结果集修剪为仅具有tblSign中的那些值的记录。
要解决这个问题,请反转连接条件并将tblSign过滤器向上推到连接条件中,如下所示:
需要注意的其他事项: