• sql (5) 左右连接


    左连接

    SQL LEFT JOIN
    LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
    语法
    SELECT column_name(s)
    FROM table_name1
    LEFT JOIN table_name2
    ON table_name1.column_name=table_name2.column_name

    SELECT Persons.LastName,Persons.FirstName,Orders.OrderNo
    FROM Persons LEFT JOIN Orders
    ON Persons.Id_P=Orders.Id_P

    新建表:

    "Persons" 表:
    Id_P LastName FirstName Address City
    1 Adams John Oxford Street London
    2 Bush George Fifth Avenue New York
    3 Carter Thomas Changan Street Beijing

    "Orders" 表:
    Id_O OrderNo Id_P
    1 77895 3
    2 44678 3
    3 22456 1
    4 24562 1

    查询:

    SELECT Persons.LastName,Persons.FirstName,Orders.OrderNo
    FROM Persons LEFT JOIN Orders
    ON Persons.Id_P=Orders.Id_P

    效果:

     右连接

    SQL RIGHT JOIN
    RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。


    SELECT column_name(s)
    FROM table_name1
    RIGHT JOIN table_name2
    ON table_name1.column_name=table_name2.column_name

    查询:

    SELECT Persons.LastName,Persons.FirstName,Orders.OrderNo
    FROM Persons
    RIGHT JOIN Orders
    ON Persons.Id_P=Orders.Id_P

    效果:

    总结:

    两个表的行数就是 两个表里面其中一个的最多行

    左连接 表示 左边的 lastname firstname 有5行,但是 Orders.OrderNo 只有4行 因为在Id_P 中没找到 

    Id_P

    右连接 表示 右边的Orders.OrderNo 有5行  关键字会从右表 (Orders) 那里返回所有的行,即使在左表 (Persons) 中没有匹配的行。

    2018-04-26   14:54:02

  • 相关阅读:
    JavaUtil_04_验证码生成器
    Java微信公众平台开发_02_启用服务器配置
    Log4j2_学习_01_Log4j 2使用教程
    Java_Time_01_获取当前时间
    Eclipse_配置_00_资源帖
    Eclipse_插件_02_jd-eclipse插件的安装
    noip模拟题题解集
    小结:高斯消元
    10月刷题总结
    【vijos】1892 树上的最大匹配(树形dp+计数)
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/8952048.html
Copyright © 2020-2023  润新知