Mysql从LEFT OUTER JOIN

时间:2017-05-04 11:31:56

标签: mysql sql

我正在尝试编写一个查询,它返回表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'的记录。

我目前的样本数据 enter image description here

非常感谢你的时间。

1 个答案:

答案 0 :(得分:1)

根据您的描述,您似乎想要一个内部联接。您在WHERE子句中遇到问题,并且条件周围有括号 - 但使用INNOT 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') ;