A表中有列:A1,A2,A3 其中A1,A2为主键
B表中有列:B1,A1,A2,B2,B3 其中B1,A1,A2为主键
A表中数据如下:
A1 A2 A3
01 0101 3
01 0102 1
01 0103 7
.. ... .
02 0201 2
02 0202 9
02 0203 4
B表中数据如下:
B1 A1 A2 B2
1 01 0101 2
1 01 0102
1 01 0103 6
我想用左连接显示如下数据:
A1 A2 A3 B2
01 0101 3 2
01 0102 1
01 0103 7 6但是老是把A表中的数据全显示出来了,难道左连接时不能过滤掉左边不加限制表的部分数据吗(全显示出来了)?怎么办?
B表中有列:B1,A1,A2,B2,B3 其中B1,A1,A2为主键
A表中数据如下:
A1 A2 A3
01 0101 3
01 0102 1
01 0103 7
.. ... .
02 0201 2
02 0202 9
02 0203 4
B表中数据如下:
B1 A1 A2 B2
1 01 0101 2
1 01 0102
1 01 0103 6
我想用左连接显示如下数据:
A1 A2 A3 B2
01 0101 3 2
01 0102 1
01 0103 7 6但是老是把A表中的数据全显示出来了,难道左连接时不能过滤掉左边不加限制表的部分数据吗(全显示出来了)?怎么办?
加上表前缀就好了,比如只要A.A1,A.A2
from a
left join b on a.a1=b.a1 and a.a2=b.a2
where a.A1='01'
我用下面的语句就会把A表中的数据全显示出来,有多余的数据,
select a.a1,a.a2,a.a3,b.b2
from a
left join b on a.a1=b.a1 and a.a2=b.a2 and a.A1='01'
A1 A2 A3 B2
01 0101 3 2
01 0102 1 (第二条记录有空值也要显示出来)
01 0103 7 6