2 sgsy 2013 sgsy_2013 于 2016.04.21 15:51 提问

求解sql左连接问题,能不能把空值数据连接起来

有什么办法可以把A表和B表当中有些数据为空的列连接起来
比如:
A表有a1,a2,a3
B表有b1,b2,b3
按条件a1=b1连接两个表
但a1和b1中有些数据是空的,现在想把这些为空的数据放在一起连接起来。

我试过了,直接a1=b1不行,为空的数据好像不相等

10个回答

u010629969
u010629969   2016.04.21 15:57
已采纳

那就用联合查询试试了

charlesloong
charlesloong   2016.04.21 16:04

ifnull(a1, '') = ifnull(b1, '') 这样呢

u010629969
u010629969   2016.04.21 16:08

刚电脑卡了 没防住多点了几下 不好意思

lovebosom
lovebosom   2016.04.21 16:10

用full join 试试,

qq_21045521
qq_21045521   2016.04.21 16:14

isnull(a1,'')=isnull(b1,'')

chenhchen1994
chenhchen1994   2016.04.21 16:18

不用做连接 用union

hlg1259728542
hlg1259728542   2016.04.21 17:00

使用左右连接试试

select * from A
left join B
on A.a1 = B.b1

qq_24334403
qq_24334403   2016.04.21 17:05

只知道左连接,右连接,但是只能解决你一半的问题,那就是可以连接左为空或者右为空,两边都为空的连接起来有什么意义呢?

sgsy_2013
sgsy_2013 是同一张表,按照不同的查询方式查出两个结果。然后要把这两个结果合并起来。但合并的条件字段有些数值是空的。
一年多之前 回复
huangwenkangz
huangwenkangz   2016.04.21 17:28

select * from dept full join employee on dept.deptid=employee.deptid
full join table on全连接,用的少

sgsy_2013
sgsy_2013   2016.04.21 18:20

谢谢大家,我后面都试试。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!