zoukankan      html  css  js  c++  java
  • Mysql高级查询 内连接和外连接详解

    一、内连接(INNER JOIN)

    1、等值连接

    概述:指使用等号"="比较两个表的连接列的值,相当于两表执行笛卡尔后,取两表连结列值相等的记录。

    语法

    SELECT 列
    FROM 表1 INNER JOIN 表2
    ON 表1.列 = 表2.列

    示例

    SELECT A.*, B.*
    FROM student_info A inner join student_score B
    ON A.student_id = B.student_id

    2、非等值连接

    概述指使用大于号">"或小于号"<"比较两个表的连接列的值,相当于两表执行笛卡尔后,取一个表大于或小于另一个表的连结列值的记录。

    语法

    SELECT 列
    FROM 表1 INNER JOIN 表2
    ON 表1.列 <> 表2.列

    示例

    SELECT A.*, B.*
    FROM student_info A inner join student_score B
    ON A.student_id > B.student_id

    结果

    二、外联结

    1、左外连接(LEFT OUTER JOIN)

    概述:指将左表的所有记录与右表符合条件的记录,返回的结果除内连接的结果,还有左表不符合条件的记录,并在右表相应列中填NULL。

    示例

    SELECT A.*, B.*
    FROM student_info A left join student_score B
    ON A.student_id = B.student_id

    结果

    3、全外连接(FULL JOIN)——MySQL不支持

    概述:指将左表所有记录与右表所有记录进行连接,返回的结果除内连接的结果,还有左表与右表不符合条件的记录,并在左表与右表相应列中填NULL。

    三、自然连接(NATURAL JOIN

    概述:指自动将表中相同名称的列进行记录匹配。

    示例

    SELECT A.*, B.*
    FROM student_info A natural join student_score B
    


    结果

    四、自连接

    概述:指用表的别名实现表自身的连接。

    示例

    SELECT B.*
    FROM student_score A, student_score B
    WHERE A.student_id = B.student_id
    AND B.student_score > 80

    结果

    最后附上一张图,此图在手,天下我有

    
    
  • 相关阅读:
    [HAOI2006] 数字序列
    [HAOI2012] 外星人
    [HAOI2012] 高速公路
    [HAOI2007] 覆盖问题
    [HAOI2007] 分割矩阵
    [HAOI2007] 上升序列
    牛客练习赛58 D 迷宫
    牛客练习赛58 F XOR TREE
    牛客练习赛58 E 最大GCD
    牛客练习赛58 C 矩阵消除游戏
  • 原文地址:https://www.cnblogs.com/zqr99/p/7498458.html
Copyright © 2011-2022 走看看