• Oracle 的内连接、外连接、自连接、左连接、右连接


    http://www.cnblogs.com/star-studio/archive/2011/06/25/2090000.html

    内连接     (JOIN 
    SELECT a.*,b.* FROM table_1 a,table_2 b WHERE a.name=b.name --写法一
    SELECT a.*,b.* FROM table_1 a JOIN table_2 b ONa.name=b.name --写法二
    SELECT a.*,b.* FROM table_1 a  INNER JOIN table_2 b ONa.name=b.name --写法三


    外连接   外连接有三种方式  左连接、 右连接、 全连接

    左连接   LEFT JOIN) 左连接是根据最左表的记录,在被连接右表中找出符合条件的记录与之匹配,找不到与左表匹配的,用null填充
    SELECT a.*,b.*FROM table_1 a LEFT JOIN table_2 b ONa.name=b.name--左连接写法一
    SELECT a.*,b.*FROM table_1 a LEFT OUTER JOIN table_2 b ONa.name=b.name--左连接写法二
    SELECT a.*,b.*FROM table_1 a, table_2 b  where  a.name=b.name(+) --左连接写法三


    右连接   RIGHT JOIN) 右连接则是根据最右表的记录,在被连接的左表中找出符合条件的记录与之匹配,找不到匹配的,用null填充
    SELECT a.*,b.*FROM table_1 a RIGHT JOIN table_2 bON a.name=b.name--右连接写法一
    SELECT a.*,b.*FROM table_1 a RIGHT OUTER JOIN table_2 b ON a.name=b.name--右连接写法二
    SELECT a.*,b.*FROM table_1 a , table_2 b  where  a.name(+)=b.name --连接写法三

    全连接   FULL JOIN返回符合条件的所有表的记录,没有与之匹配的,用null填充
    SELECT*FROM table_1 a FULL JOIN table_2 b ONa.name=b.name--全连接写法一
    SELECT a.*,b.*FROM table_1 a FULL OUTER JOIN table_2 b ONa.name=b.name--全连接写法二 


    交叉连接  CROSS JOIN 笛卡尔积,结果集的记录数将等于第一个表的记录数乘以第二个表中的记录数。
    SELECT a.*,b.*FROM table_1 a CROSS JOIN table_2 b --交叉连接
    SELECT a.*,b.*FROM table_1 a,table_2 b --内连接


    自连接   连接的表都是同一个表。同样可以有内连接、外连接各种组合方式,按实际应用去组合。

    SELECT a.*,b.*FROM table_1 a,table_1 b WHERE  a.[name]=b.[name] --连接的两表是同一个表,别称不一样
    SELECT a.*,b.*FROM table_1 a  LEFT  JOIN table_1 b ON a.[name]=b.[name]--左连接写法
    等等


    自然连接  

    自然连接是在两张表中寻找那些数据类型和列名都相同的字段,然后自动地将他们连接起来,并返回所有符合条件按的结果

    SELECT a.*,b.* FROM table_1 a NATURAL JOIN table_2 b   

    自然连接等效于内连接

    SELECT a.*,b.* FROM table_1 a JOIN table_2 b ON a.name=b.name  


    也可以将自然连接理解为内连接的一种。
    有关自然连接的一些注意事项:
    (1).如果做自然连接的两个表的有多个字段都满足有相同名称个类型,那么他们会被作为自然连接的条件。
    (2).如果自然连接的两个表仅是字段名称相同,但数据类型不同,那么将会返回一个错误。














  • 相关阅读:
    在HTML5中,用getCurrentPosition()获取用户的当前位置
    邮件设置 ssl://smtp.exmail.qq.com:465 can not connect to the SMTP server
    IIS绑定中文域名
    destoon 会员状态栏不显示
    汉诺塔的移动--python递归实现
    微星 msi B450迫击炮+2600X+RX588 3A平台装机
    正则表达式-1
    接口--php对接农行网上支付平台-b2b
    python----字符串操作函数
    php面试题--1
  • 原文地址:https://www.cnblogs.com/leeeee/p/7276441.html
Copyright © 2020-2023  润新知