我想弄清楚如何在一个表中显示数据,如果一个值不存在于另一个表中。我研究过病例报告,但无法弄清楚它将如何应用于我目前的情况。需要多个where子句或条件语句的更好的方式
我有两个表,CompanyRequestOff
和TakeOver
,我希望能够从CompanyRequestOff
选择列,其中TransactionID
s为相等,但User
列不能是相同的。
任何帮助甚至指出我在正确的方向将是有益的谢谢。
的CompanyRequestOff
表中有这些列:
TransactionID
Requestee
RequestedDate
RequestedTimeSlot
RequestedPosition
RequestStatus
LastUpdate
Manager
而且TakeOver
表有:
Id
TransactionID
RequestedUser
RequestStatus
LastUpdate
Manager
这是我解决这个尝试:
SELECT
CompanyRequestOff.TransactionID, CompanyRequestOff.Requestee,
CompanyRequestOff.RequestedDate, CompanyRequestOff.RequestedTimeSlot,
CompanyRequestOff.RequestedTimeSlot, CompanyRequestOff.RequestedPosition,
CompanyRequestOff.RequestStatus, CompanyRequestOff.LastUpdate,
CompanyRequestOff.Manager
FROM
CompanyRequestOff, TakeOver
WHERE
RequestedDate > GETDATE()
AND CompanyRequestOff.RequestStatus = 'Requested'
AND CompanyRequestOff.TransactionID = TakeOver.TransactionID
AND TakeOver.RequestedUser != @UserN;
唯一列与0123相关的是transactionID
列和国外TakeOver
。我想要显示CompanyRequestOff
表中的列,其中TakeOver
中没有与transactionID
的行,但只有它包含某个TakeOver.RequestedUser
值。
难道这不就是连接上的复合条件吗? '选择*从CompanyRequestOff CRO LEFT JOIN takeOver TO TO.TransactionID = CRO.TransactionID和CRO.User <> TO。用户' – xQbert