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
已采纳

那就用联合查询试试了

huangwenkangz
huangwenkangz   2016.04.21 17:28

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

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 是同一张表,按照不同的查询方式查出两个结果。然后要把这两个结果合并起来。但合并的条件字段有些数值是空的。
大约 2 年之前 回复
sgsy_2013
sgsy_2013   2016.04.21 18:20

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
SQL SERVER NULL值和连接注意问题
联接表的列中的 null 值(如果有)互相不匹配。如果其中一个联接表的列中出现空值,只能通过外部联接返回这些空值(除非 WHERE 子句不包括空值)。   下面的两个表中,每个表中要参与联接的列中均包含 NULL 值: 将列 a 中的值与列 c 中的值进行比较的联接在包含 NULL 值的列上不会获得匹配项: SELECT     *FROM [dbo].[Table_1
使用left join连接带NULL值数据表案例
insert into t_user values(1,'use1','123','user1',1,0,'test@qq.com',0,now()); insert into t_user values(2,'use2','123','user2',1,0,'test@qq.com',0,now());insert into t_message values(1,'msg11','content1
数据库查询中的左连接及注意事项
 上班闲来无事,上网灌水累了,于是决定self study一会,找了一份公司的数据库培训资料,翻翻看看 翻到join查询一块,突然想起以前开发时,碰到的一个左连接的问题,于是,在CSDN查找旧贴,整理了一下.  我们在查询的时候,有三种join类型:内连接、外连接和交叉连接。 内连接(INNER JOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据
Linq 左连接 left join
Suppose you have a tblRoom and tblUserInfo. Now, you need to select all the rooms regardless of whether the room has user information or not. This calls for a LEFT JOIN which will select everything
数据库左连接查询(查询多张表中的数据)
描述:根据两张表的关联字段,将两张表进行关联来取数据 语句:select a.,b. from a left join b on a.aid=b.bid 例子:public List<WlzxZbglThjl> searchThjl(String zbid){ //将供应商表与保证金退还记录表利用供应商的id相关联 String
sql 在not in 子查询有null值情况下经常出现的陷阱
如果下:Table_A表和Table_B表,要求查询出在Table_A表中不在Table_B表中的记录。 CREATE TABLE [dbo].[Table_A]( [ID] [nchar](10) NULL, [Name] [nchar](10) NULL ) ON [PRIMARY] GO ID Name 001 张三
SQL 左连接(left join) 排序 分页 中遇到的未按理想状态排序分页的解决方案
语句目标: 以主表排序后并进行分页,而后再去连接其它表 出现问题: 最终主表并没有按照预想进行顺序输出,但是分页的数据是正确的。 来自 stackflow 解答: No, the JOIN by order is changed during optimization.
数据库 左连接 右连接 全连接用法小结
连接可以在SELECT 语句的FROM子句或WHERE子句中建立,似是而非在FROM子句中指出连接时有助于将连接操作与WHERE子句中的搜索条件区分开来。所以,在Transact-SQL中推荐使用这种方法。   SQL-92标准所定义的FROM子句的连接语法格式为:   FROM join_table join_type join_table   [ON (join_conditio
今天去面试遇到了一个问题,左连接查询的问题
问:(左(外)连接)左连接查询主数据一定能查询到数据吗? 答:一定能? 答案是错误的,现在想想好傻,如果一定能查询到数据,连表查询条件有什么作用呢? 以下有两张表做了测试: user 表,里面有两条数据, 活动表action,里面有一条数据: SELECT    *,action.`id` AS action_id FROM   `users` LEFT JOIN
数据库左右外连接与mapper.xml注意问题
通过今天的学习让我明白了:左外连接跟右外连接的区别,left/right (outer)join...on  左外连接就是返回左表不满足连接条件单满足查询条件的命令行 右外连接就是返回右表不满足连接条件单满足查询条件的命令行 左表就是关键字左边的表,右表是关键字右边的表 使用mybatis时需要注意的mapper.xml的书写注意: insert语句 当插入多个参数时,需要在接口