鑑於你的初始查詢,你應該能夠寫:
SELECT UID
FROM Table1
WHERE EXISTS (SELECT 1
FROM Table2
WHERE SubjectB = SubjectA
)
AND another_column_from_table1 > 10;
不應該有從語法錯誤只需將條件添加到查詢的末尾即可。從評論看來,這似乎是語法上接受的,但不產生任何輸出。最明顯的技術調試是這樣的:
SELECT UID, another_column_from_table1
FROM Table1
WHERE EXISTS (SELECT 1
FROM Table2
WHERE SubjectB = SubjectA
)
這將顯示在列中的值;大概是因爲當你添加額外的過濾條件時結果集是空的,這個選擇的第二列中的值將全部小於10(或空)。
如果有在表1和表2條目之間的一比一的關係,那麼你可以改用一個JOIN:
SELECT t1.UID
FROM Table1 AS t1
JOIN Table2 AS t2 ON t2.SubjectB = t1.SubjectA
WHERE t1.another_column_from_table1 > 10;
如果有可能在表2幾行於表1的每一行,然後你需要添加DISTINCT:
SELECT DISTINCT t1.UID
FROM Table1 AS t1
JOIN Table2 AS t2 ON t2.SubjectB = t1.SubjectA
WHERE t1.another_column_from_table1 > 10;
你會得到什麼錯誤? – 2012-04-08 22:15:05
我沒有錯誤。查詢不輸出任何東西:( – tjones 2012-04-08 22:16:51
語法是有效的,然後 – 2012-04-08 22:18:28