我有兩個表Person
和Table1
。我想加入person
表table1
其中foodId
爲2SQL Server:INNER JOIN返回不正確的行
然而,當我做內部聯接它只是加入了記錄,其中foodId
爲1
Person
:
id fName lName
1 John Smith
Table1
:
id personId foodId date
1 1 1 2014-10-28
2 1 2 2014-10-28
我嘗試的查詢:
SELECT *
FROM Person p
INNER JOIN Table1 t ON p.id = t.personId AND foodId = 2
我也試過:
SELECT *
FROM Person p
INNER JOIN Table1 t ON p.id = t.personId
WHERE t.foodId = 2
這兩項查詢顯示空的結果。
任何建議,將不勝感激!
要麼你沒有真正向我們展示你的實際表格,要麼你沒有向我們展示正確的數據 - 用**提供的這個數據**,查詢#2 **是否返回'(1,'John ','史密斯',1,2,'2014-10-28')'作爲它的回答.... – 2014-10-28 15:31:18
這就是我認爲它應該返回。在我的第二個查詢中,如果我沒有包含那個'WHERE'子句,那麼這兩個記錄都應該返回,對嗎? – Andrew 2014-10-28 15:33:47
第一個查詢格式似乎有點奇怪。它可能會工作,如果你嘗試'INNER JOIN Table1 t ON p.id = t.personId AND t.foodId = 2'這可能會解決它,因爲你的第二個條件不引用表別名。如果它有效,它應該仍然會給出相同的結果。 – 2014-10-28 15:38:30