我正在尝试编写一个查询,它返回表1中的所有记录以及table2中存在匹配项的所有记录,但不包括两个表中包含设置内容的记录。
SELECT h.UniqueID, h.Room, h.AuditBy, h.AuditDate, h.SeqID, h.Stat, h.RepairCode, d.SeqNo, d.SeqHeader, d.SeqText
FROM NXLHR_SequenceNo_default d
LEFT OUTER JOIN NXLHR_Hist_17 h
ON d.SeqID = h.SeqID AND h.UniqueID = 'NXLHR02571493893502'
WHERE h.Stat = 1 OR h.Stat = 2 AND RepairCode IS NULL AND h.SeqID != '1306' OR h.SeqID != '1307'
目前我的查询重新生成列h.SeqID包含'1306'或h.SeqID包含'1307'的记录
有没有办法过滤掉SeqID列中包含'1306'或'1307'的记录。
非常感谢你的时间。
答案 0 :(得分:1)
根据您的描述,您似乎想要一个内部联接。您在WHERE
子句中遇到问题,并且条件周围有括号 - 但使用IN
和NOT IN
更容易解决此问题:
SELECT h.UniqueID, h.Room, h.AuditBy, h.AuditDate, h.SeqID, h.Stat,
h.RepairCode, d.SeqNo, d.SeqHeader, d.SeqText
FROM NXLHR_SequenceNo_default d INNER JOIN
NXLHR_Hist_17 h
ON d.SeqID = h.SeqID AND h.UniqueID = 'NXLHR02571493893502'
WHERE h.Stat IN (1, 2) AND
h.RepairCode IS NULL AND
h.SeqID NOT IN ('SeqID1306', 'SeqID1307') ;