2017-05-04 58 views
0

我試圖寫一個返回從表1中的所有記錄,所有記錄從表2那裏是一個比賽,但排除其中一列包含了一組內容兩個表記錄的查詢。Mysql的排除從LEFT OUTER記錄JOIN

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' 

此刻我的查詢retruns記錄,其中列h.SeqID包含「1306」 OR h.SeqID包含「1307」

有沒有辦法可以過濾掉其中列的SeqID包含任何記錄從結果中選擇'1306'或'1307'。

我現在的樣本數據 enter image description here

提前爲您的時間非常感謝。

+0

這聽起來像一個*內部聯接*。樣本數據和期望的結果將有所幫助。 –

+0

1)給出的樣本數據對兩個表用於匹配的記錄,這將在輸出中使用。 2)你的預期輸出基於該 – Utsav

+0

見https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be- A-極簡單的SQL查詢 – Strawberry

回答

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') ; 
+0

我已經加入我的樣本數據後。還嘗試使用INNER JOIN和NOT IN的代碼,但我仍然得到相同的結果,即結果包含SeqID包含1306或1307的記錄。非常感謝您的幫助。 – DCJones

+0

'SeqID'似乎是一種特殊格式的字符串。 –

+0

這就是我在沒有詳細看我的查詢愚蠢的錯誤。有另一雙眼睛看這個問題的好處。戈登,非常感謝你的幫助。修復和工作。 – DCJones