• SQL中表的连接类型左连接、右连接、内连接


    两个表

    student表,information表

    左连接

    student表 left join information表

    SELECT * FROM student s
    LEFT JOIN information f on s.SNO = f.SNO;

    • SNO='202201',s有2条,f有1条,结果集有2条数据;
    • SNO='202202',s有3条,f有2条,结果集有6条数据;(2×3=6)
    • SNO='202203',s有1条,f有1条,结果集有1条数据;
    • SNO='202204',s有1条,f有2条,结果集有2条数据;
    • SNO='202205',s有1条,f无,结果集f的列为null
    • SNO='202206',s无,f有的数据,结果集无

     注意黑色加粗的字即它们的区别;

    右连接

    student表 right join information表

    SELECT * FROM student s
    RIGHT JOIN information f on s.SNO = f.SNO;

    • SNO='202201',s有2条,f有1条,结果集有2条数据;
    • SNO='202202',s有3条,f有2条,结果集有6条数据;(2×3=6)
    • SNO='202203',s有1条,f有1条,结果集有1条数据;
    • SNO='202204',s有1条,f有2条,结果集有2条数据;
    • SNO='202205',s有1条,f无,结果集无
    • SNO='202206',s无,f有的数据,结果集s的列为null

    内连接

    student表 inner join information表

    SELECT * FROM student s
    inner JOIN information f on s.SNO = f.SNO;

    • SNO='202201',s有2条,f有1条,结果集有2条数据;
    • SNO='202202',s有3条,f有2条,结果集有6条数据;(2×3=6)
    • SNO='202203',s有1条,f有1条,结果集有1条数据;
    • SNO='202204',s有1条,f有2条,结果集有2条数据;
    • SNO='202205',s有1条,f无,结果集无;
    • SNO='202206',s无,f有1条,结果集无;
    SELECT * FROM student s,information f 
    WHERE s.SNO = f.SNO

    where语句也可以实现内连接的功能,但是where语句还可以加上其他条件,内连接只能自己再写一个where条件语句。

    End.

  • 相关阅读:
    怎样才是全能的程序员?
    [HDU 2553]N皇后问题
    [HDU 1870]愚人节的礼物
    [HDU 1016]Prime Ring Problem
    [HDU 1241]Oil Deposits
    [POJ 3250]Bad Hair Day
    [HDU 1276]士兵队列训练问题
    [POJ 2796]Feel Good
    [HDU 1237] 简单计算器
    总算开通博客园啦~
  • 原文地址:https://www.cnblogs.com/youreyebows/p/16135443.html
Copyright © 2020-2023  润新知