sql基础之表关联

  1. 左连接:left join
    下面有三张表A,B
    A表
    这里写图片描述
    B表
    B表
    select * from A a1 LEFT JOIN B b1 on a1.a_id=b1.a_id
    这里写图片描述
    总结:
    左连接就是先把left join 左边的表(A)的所有记录先显示出来,然后再根据on后面的条件匹配另一张表(B),但是如果说匹配到多条数据,然后就会把表A的数据复制一遍和后面表的数据一起显示出来。其次如果A表的数据多,b表没有就用null来补齐。

    当然也可以在左连接之后再左连接。
    如:select * from b a1 LEFT JOIN A b1 on a1.a_id=b1.a_id LEFT JOIN A a2 on a1.create_by=a2.a_id
    这里写图片描述
    如果说第二次连接后面条件不满足条件就显示空

  2. 右连接
    select * from A a1 RIGHT JOIN B b1 on a1.a_id=b1.create_by
    这里写图片描述
    总结:而右连接则是刚好相反。先显示右面在来匹配左面。没有则显示空

    多个右连接的执行顺序
    select * from A a1 RIGHT JOIN B b1 on a1.a_id=b1.create_by RIGHT JOIN B b2 on b2.b_id=b1.a_id
    这里写图片描述

select * from A a1 RIGHT JOIN B b1 on a1.a_id=b1.create_by RIGHT JOIN B b2 on b2.b_id=b1.a_id
RIGHT JOIN A a2 on a2.a_id=a1.

这里写图片描述
总结:多表的执行顺序是,A和B先组成成一个表,再与另外的B2表进行新的右关联查询,多个以此类推

  1. 内关联
    select * from A a1 INNER JOIN B b1 on a1.a_id=b1.a_id
    这里写图片描述
    总结: inner join并不以谁为基础,它只显示符合条件的记录.
    使用场景:
    LEFT JOIN操作用于在任何的 FROM 子句中,来组合第一张表的数据。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。
    语法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2
    说明:table1, table2参数用于指定要将记录组合的表的名称。
    field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。
    compopr参数指定关系比较运算符:”=”, “<”, “>”, “<=”, “>=” 或 “<>”。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值