SQL的内JOIN ,外join ,左join 右join

我很喜欢那些概念,然而,似乎这然我们认为可以用它应用到实际。假设我们已经有了以下两个表,表A 在左边,表B在右边。我们要用4个标记来填充它们。

id  name            id  name

1 pirate            1 Rutabaga

2 Monkey       2 pirate

3 ninja             3 Darth  vader

4 spaghetti       4 ninja

让我们连接这些表,利用名称字段通过不同的方式来解决。来看看我们是否可以总结些概念匹配这些漂亮的韦恩图

select * from Table A inner join Table B

内连接产生的结果只匹配那些既符合表A和表B的结果,

 select * from Table A Full outer Join TableB

on Table A.name=Table.name

完全外连接是产生既有表A又有表B的记录

当表B没有与表A匹配的字段时就会对应null值

Left outer join 左连接。表A的字段完全显示,并且只显示表B与表A匹配的字段,表B其他的值为null

select * from TableA  left out join  tableB on tableA.name=tableB.name

 where tableB.Id is  null

显示的只有表A特有的部分

select * from tableA  full outer join tableB on TableA.name=TableB.name

where TableA.id  Is null or  TableB.Id  is null

查找出来的将是 表A和表B非公共的部分

select * from TableA Cross join TableB

将产生笛卡尔集 4*4=16

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值