zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    QT 十六进制字符串转化为十六进制编码
    C语言中函数有输出参数
    QT 字符串相等间距字符间增加字符
    CRC校验算法
    QT 环境下开发socketCan接口程序
    QT 十六进制整数变为字符串自动补0 && 十进制补零
    C语言函数返回数组
    JNI文件中命名类与JAVA文件中匹配
    mini6410-JNI-led
    gis 出现问题解决办法
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/8952048.html
Copyright © 2011-2022 走看看