我有两个问题。
第一次查询
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
修改 使用Tim解决方案时,结果如下:
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时,NULL被分组。我不知道哪个NULL属于哪个ID1或ID2
答案 0 :(得分:0)
您当前的查询几乎看起来是正确的,只是它使用RestRequest
来删除INNER JOIN
中与您的第一个加入查询不匹配的记录。此外,C
与联接查询之间的联接条件是C
和ID1
都应匹配。试试这个:
ID3