2
我正在使用SQL Server 2008 R2。SQL Server和運算符與ON
我正在查詢中,我正在使用左外連接從兩個表中獲取記錄。現在
,查詢是這樣的:
SELECT Table1.Id, Table1.Name, Table2.DeviceId
FROM Table1
LEFT OUTER JOIN Table2 ON Table1.Id = Table2.Table1Id AND Table2.DeviceId=4
WHERE Table1.Name LIKE 'xxxxxx' AND Table1.IsDeleted=0
而且它給我想要的結果。
但是當我使用
SELECT Table1.Id, Table1.Name, Table2.DeviceId
FROM Table1
LEFT OUTER JOIN Table2 ON Table1.Id = Table2.Table1Id
WHERE Table1.Name LIKE 'xxxxxx' AND Table1.IsDeleted=0 AND Table2.DeviceId=4
它沒有得到所需要的結果。
現在,我沒有得到ON語句和WHERE子句中AND運算符之間的區別?
有人可以解釋一下嗎?
謝謝..
什麼是錯誤的結果? – Szymon
它改變連接謂詞。從邏輯上講,這是在WHERE子句之前應用的。當你在'WHERE'子句中放置'AND Table2.DeviceId = 4'時,你基本上把'LEFT JOIN'變成'INNER JOIN'。 –
@Szymon我沒有得到想要的記錄。 – Dev