使用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','content11',now(),1);
insert into t_message values(2,'msg12','content12',now(),1);
insert into t_message values(3,'msg21','content21',now(),1);
insert into t_message values(4,'msg22','content22',now(),1);

insert into t_attachment values (1,'attach1','attach1','zip',now(),1);
insert into t_attachment values (2,'attach2','attach1','zip',now(),1);

select t_message.m_id,a_id from t_message,t_attachment where t_message.m_id = t_attachment.m_id;
select t_message.u_id,m_id from t_user,t_message where t_message.u_id = t_user.u_id;
#left join可以满足你的要求,右侧对附件表的连接,没有附件的话会补NULL
select * from ((select t_message.u_id,m_id from t_user,t_message where t_message.u_id = t_user.u_id) as a left join (select t_message.m_id,a_id from t_message,t_attachment where t_message.m_id = t_attachment.m_id) as b on a.m_id = b.m_id);

结果集:
u_id | m_id | m_id | a_id
——+——+——+——
1 | 1 | 1 | 1
1 | 1 | 1 | 2
1 | 2 | |

1 | 3 | |

1 | 4 | |

(5 rows)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值