• sql的left join 命令


    给个通俗的解释吧. 
    例表a 
    aid adate 
    1 a1 
    2 a2 
    3 a3 
    表b 
    bid bdate 
    1 b1 
    2 b2 
    4 b4 
    两个表a,b相连接,要取出id相同的字段 
    select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据. 
    此时的取出的是: 
    1 a1 b1 
    2 a2 b2 
    那么left join 指: 
    select * from a left join b on a.aid = b.bid 
    首先取出a表中所有数据,然后再加上与a,b匹配的的数据 
    此时的取出的是: 
    1 a1 b1 
    2 a2 b2 
    3 a3 空字符 
    同样的也有right join 
    指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据 
    此时的取出的是: 
    1 a1 b1 
    2 a2 b2 
    4 空字符 b4

    LEFT JOIN 或 LEFT OUTER JOIN。 
    左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。 
     
    --1
    select * from aa left join ab on aa.aid=ab.aid
     
    --2 2和1 效果一样  所以 = 两边的顺序是没有关系的
    select * from aa left join ab on ab.aid=aa.aid
     
    --3
    select * from aa right join ab on ab.aid=aa.aid
     
    --4 3和4的显示效果一样
    select * from ab left join aa on ab.aid=aa.aid
     
    --5 1和2和5的显示效果一样
    select * from ab right join aa on ab.aid=aa.aid

  • 相关阅读:
    Leecode no.22 括号生成
    修改mysql数据库的时区
    Django 路由层之反向解析
    学习 Django 的几个教程网址
    leetcode周赛 242
    AcWing第二次热身赛
    AcWing夏季每日一题--最长公共子序列
    AcWIng夏季每日一题--序列最大收益
    leetcode周赛 241
    第十二届蓝桥杯C++ B组
  • 原文地址:https://www.cnblogs.com/ShaYeBlog/p/2669151.html
Copyright © 2020-2023  润新知