我有兩個表,我想用它們中的空值連接它們。我的第一表的加入null
樣本數據(A_TEST):
+--+----+
|ID|NAME|
+--+----+
| |a |
|1 |b |
|1 |c |
+--+----+
我的第二表(B_TEST)的樣本數據:
+--+----+
|ID|NAME|
+--+----+
|1 |d |
|2 |e |
|3 |f |
+--+----+
我需要通過加入a_test.id =達到的效果b_test.id,如果它有空值,我也需要獲取它們。於是,我就寫如下的查詢,
select a_test.id,a_test.name,b_test.id,b_test.name
from a_test,b_test
where (a_test.id = b_test.id
or a_test.id is null);
我有如下輸出,
+--+----+--+----+
|ID|NAME|ID|NAME|
+--+----+--+----+
| |a |1 |d |
| |a |2 |e |
| |a |3 |f |
|1 |b |1 |d |
|1 |c |1 |d |
+--+----+--+----+
但是我預期的結果是,因爲ID 1是有我的a_test我需要的相應行從b_test也參見下面的輸出
+--+----+--+----+
|ID|NAME|ID|NAME|
+--+----+--+----+
| |a |1 |d |
|1 |b |1 |d |
|1 |c |1 |d |
+--+----+--+----+
我試過外連接,但也沒有給我預期的輸出。
你爲什麼認爲來自'b_test'的'1 d'行對應''a_test'的'null a'行? –
dbms如何理解你不想讓你指定的輸出得到?你需要一個更多的條件! – jarlh
@defaultlocale - 因爲id 1在a_test表中,我期望從b_test中獲得記錄,這個記錄也有id爲1 – arunb2w