我面臨有條件連接的問題。如何在SQL中有條件地定義JOIN的ON值?
這是我的查詢:
SELECT table_b.name
FROM table_a
LEFT JOIN table_b
ON table_a.id = table_b.a_id
我的表-B的描述:
id, a_id, ref_z, name
----------------------
1 | 0 | 1 | James
2 | 0 | 2 | John
3 | 2 | 2 | John. S
4 | 0 | 3 | Martin
5 | 6 | 3 | Martin. M
6 | 2 | 3 | Martin. M. Mr
比方說,我有一個參數@a_id。
我想加盟表-A和表-B ON table_a.id = @a_id如果在0
否則存在那麼前面的查詢的結果應該是(與@a_id = 2):
James
John. S
Martin. M. Mr
任何人都有一個想法,博客文章,手冊頁或任何其他可以讓我得到正確查詢的東西嗎?
謝謝
感謝您的答案。問題是,如果你把table_b的行id = 1,它不會帶回where子句。當它應該是因爲它應該是如果存在@a_id的行,那麼這一個與零的一個。 – Spredzy
您可以操縱連接來完成此操作。 –