1
我有一個問題,建立一個SQL查詢,希望有人能幫助我。mySQL從兩個表中選擇匹配或不存在
所以這裏的任務,我有兩個表我想用一個單一的查詢。不是一個大問題,除非涉及WHERE子句匹配。我需要表A中的所有條目,但僅匹配表B中的條目,但保留表A中不存在鏈接ID的條目。
要明確什麼我這裏是對錶結構的一例...
TABLE A
ID | VAL1 | VAL2 | VAL3
1 | abc | xyz | 123
2 | abc | xyz | 123
3 | abc | xyz | 123
4 | abc | xyz | 123
TABLE B
ID | A-ID | X1 | X2 | X3 | FLAG
1 | 1 | ab | xy | 98 | 1
2 | 1 | ab | xy | 98 | 1
3 | 1 | ab | xy | 98 | 0
4 | 2 | ab | xy | 98 | 1
5 | 2 | ab | xy | 98 | 0
6 | 4 | ab | xy | 98 | 1
因此,如果使用這種查詢...
SELECT a.*, b.* FROM Table_A AS a LEFT JOIN Table_B AS b ON b.a-id = a.id WHERE b.flag = 0
...我得到的,當然只有在B中具有匹配的A的條目(在本例中爲ID 1和2),因爲3在B中沒有條目並且僅有4條具有FLAG 1的條目。
但是,在結果數組,我需要A3和A. 4以及B陣列值簡單地爲空。
我有currenlty沒有線索,如果這可以很容易地完成,並在一個單一的查詢。我已經嘗試了不同的方法,通過改變查詢類似的東西...
SELECT a.*, (SELECT b.* FROM Table_B AS b WHERE b.a-id = a.id) AS array FROM Table_A AS a
...但在這種情況下b。*是不允許的。 :(