我有兩個查詢。提取查詢中的所有數據,並從另一個查詢提取一些數據
1查詢
SELECT A.ID1, A.ID2, B.ID3, B.approved FROM A INNER JOIN B ON A.ID2 = B.ID2
這是結果:
ID1 ID2 ID3 approved
ABC A01 B01 5
ABC A01 B03 7
ABC A01 B05 11
DEF A02 B05 50
DEF A02 B06 50
第二查詢
SELECT C.ID1, C.ID3, C.requested FROM C
這是結果:
ID1 ID3 requested
ABC B01 10
ABC B02 20
ABC B03 30
ABC B04 40
ABC B05 50
DEF B02 99
DEF B05 88
DEF B01 77
DEF B06 66
這是我預期的結果:
ID1 ID2 ID3 requested approved
ABC A01 B01 10 5
ABC A01 B02 20 0
ABC A01 B03 30 7
ABC A01 B04 40 0
ABC A01 B05 50 11
DEF A02 B05 88 50
DEF A02 B06 66 50
DEF A02 B01 77 0
我的查詢沒有顯示預期的結果:
SELECT
C.ID1, C.ID3, C.requested,X.approved
FROM
C
INNER JOIN (
SELECT
A.ID1, A.ID2, B.ID3, B.approved
FROM
A
INNER JOIN
B
ON
A.ID2 = B.ID2)X
ON C.ID3 = X.ID3
編輯: 當使用添解決方案,這就是結果:
ID1 ID2 ID3 requested approved
ABC A01 B01 10 5
NULL NULL B02 20 0
ABC A01 B03 30 7
NULL NULL B04 40 0
ABC A01 B05 50 11
NULL NULL B02 99 0
NULL NULL B01 77 0
DEF A02 B05 88 50
DEF A02 B06 66 50
NULL NULL B01 77 0
當我使用Order By NULL時被分組。我不知道哪個NULL屬於哪個ID1或ID2
通過所有3列加入 –
從我知道的任何加入操作中無法實現您的更新結果。 –
爲什麼'ABC B02 20'出現在結果集中而不是'DEF B01 77'? –