求两表查询sql语句
根据Category查询a,b两表,要求Category相同,aID和bID相同的放同一行,aID有的bID没有就bID为空,bID有的aID没有,就aID为空,如下查询Category为x的数据
a: b:
aID Category bID Category
1 x 1 x
2 x 2 x
3 x 3 x
4 x 7 x
5 x 8 x
6 x 9 x
9 y 10 y
11 y 11 y
得到表
c:
aID bID Category
1 1 x
2 2 x
3 3 x
4 null x
5 null x
6 null x
null 7 x
null 8 x
null 9 x
[解决办法]
是用FULL JOIN,不過是這麼寫的
Select
A.aID,
B.bID,
IsNull(A.Category, B.Category) As Category
From
A
Full Join
B
On A.aID = B.bID And A.Category = B.Category
Where IsNull(A.Category, B.Category) = 'x '
Order By IsNull(A.aID, B.bID)