zoukankan      html  css  js  c++  java
  • SQL里 inner JOIN、 left (OUTER) JOIN 、right (OUTER) JOIN、 full (OUTER) JOIN 之间的区别

    SQL里 inner JOINleft  (OUTER) JOINright  (OUTER) JOINfull (OUTER) JOIN 之间的区别 
    
    /*  直接上例子废话不多说
        此例子里两张表之间相等的都是各自的主键
        然而大部分情况下是A表的主键和B表里的外键相等,
        所以就会存在B表里多行记录匹配A表里的一行记录
        这里仅做例子
    */
    /* 在写连接查询的时候,ON后面只跟连接条件,而对中间表限制的条件都写到WHERE子句中。 
    */
    A表(aID,aCourse,aGrade) | B表(bID,bName) aID aCourse aGrade | bID bName 01 数学 95 | 01 张三 02 语文 90 | 02 李四 03 英语 80 | 04 王五 -- inner join(等值连接取交集) 只返回两个表中联结字段相等的行 SELECT a.*,b.* FROM A a INNER JOIN B b ON a.aID = b.bID; -- a.*,b.* 可用 * 替代,INNER JOIN中间没有OUTER
    SELECT a.*,b.* FROM A a , B b WHERE a.aID = b.bID; --INNER JOIN 的简写,效果等同 -- 结果集: aID aCourse aGrade bID bName 01 数学 95 01 张三 02 语文 90 02 李四 -- left join(左联接) 返回包括左表中的所有记录以及左表与右表中联结字段相等的记录 SELECT * FROM A a LEFT OUTER JOIN B b ON a.aID = b.bID; -- OUTER可省略 -- 结果集:B表记录不足的地方均为NULL aID aCourse aGrade bID bName 01 数学 95 01 张三 02 语文 90 02 李四 03 英语 80 NULL NULL --right join(右联接) 返回包括右表中的所有记录以及右边与左表中联结字段相等的记录 SELECT * FROM A a RIGHT JOIN B b ON a.aID = b.bID;-- OUTER省略 -- 结果集:A表记录不足的地方均为NULL aID aCourse aGrade  bID bName 01 数学 95 01 张三 02 语文 90 02 李四 NULL NULL NULL 04 王五 -- full JOIN(全连接) 返回包括A,B表中的所有记录 SELECT * FROM A a FULL JOIN B b ON a.aID = b.bID;---- OUTER省略 结果集:A、B表记录不足的地方均为NULL aID aCourse aGrade bID bName 01 数学 95 01 张三 02 语文 90 02 李四 03 英语 80 NULL NULL NULL NULL NULL 04 王五 注意:MySQL Full Join的实现 因为MySQL不支持FULL JOIN,下面是替代方法 LEFT JOIN + UNION(可去除重复数据)+ RIGHT JOIN select * from A left join B on A.id = B.id (where 条件) union select * from A right join B on A.id = B.id (where条件); 上述全连接就可以在MYSQL中就可以替换成以下: SELECT * FROM A a LEFT OUTER JOIN B b ON a.aID = b.bID UNION SELECT * FROM A a RIGHT JOIN B b ON a.aID = b.bID
  • 相关阅读:
    MVC的布局页,视图布局页和分布页的使用
    C#程序的编译过程
    页面跳转到Area区域连接
    c#静态变量和非静态变量的区别
    C#设计模式:适配器模式(Adapter Pattern)
    依赖注入
    打印随机数到字符串中
    printf/scanf格式
    用fread和fwrite实现文件复制操作
    用fseek和ftell获取文件的大小
  • 原文地址:https://www.cnblogs.com/gqs92/p/6764437.html
Copyright © 2011-2022 走看看