SQL各种Join连接总结
2017-04-25 10:20
465 查看
连接运算是8种关系运算中的一种。
五种JOIN方式:
两种连接条件:
2、去掉重复的属性(列)。
3、列出属性的顺序:先是共同属性,然后是第一个关系的属性,最后是第二个关系的属性。
为了防止两个表有多个共同属性时natural join 会忽略部分需要的元组对,应使用join…using(…),以指定需要哪些列相等
join…using(…)连接只能局限在指定的属性上
最后放一张图:
参考:
http://stackoverflow.com/questions/565620/difference-between-join-and-inner-join
http://stackoverflow.com/questions/3308122/how-do-i-decide-when-to-use-right-joins-left-joins-or-inner-joins-or-how-to-dete/3308153#3308153
http://stackoverflow.com/questions/17946221/sql-join-and-different-types-of-joins/17946222#17946222
五种JOIN方式:
1.INNER JOIN or JOIN 2.OUTER JOIN 2.1LEFT OUTER JOIN or LEFT JOIN 2.2RIGHT OUTER JOIN or RIGHT JOIN 2.3FULL OUTER JOIN or FULL JOIN 3.NATURAL JOIN 4.CROSS JOIN 5.SELF JOIN PS:JOIN中的简写为语法糖,实际中写出来方便读一点而已
两种连接条件:
1.Equi JOIN 1.1NATURAL 1.2USING(a,b) 1.3= ... 2.Theta JOIN 2.1>= 2.2<= 2.3> ... PS:USING(...)指定需要哪些列相等。ON则可以指定任意的连接条件(=,>=,<=,!=,>,<...)
JOIN or INNER JOIN
返回两个表中同时满足条件的元组对,不满足的将被丢弃。OUTER JOIN
LEFT OUTER JOIN
返回左表所有行以及右表满足条件的行,左表有值右表无值填充为nullRIGHT OUTER JOIN
返回右表所有行以及左表满足条件的行,右表有值左表无值填充为nullFULL OUTER JOIN
返回所有表的所有行,在满足条件的行之外,左表满足右表不满足或者相反,均填充nullNATURAL JOIN
1、来自两个关系的元组对在共同属性上的值相同。(不限于一个共同属性,也可以是多个共同属性)2、去掉重复的属性(列)。
3、列出属性的顺序:先是共同属性,然后是第一个关系的属性,最后是第二个关系的属性。
为了防止两个表有多个共同属性时natural join 会忽略部分需要的元组对,应使用join…using(…),以指定需要哪些列相等
join…using(…)连接只能局限在指定的属性上
CROSS JOIN
返回笛卡儿积SELF JOIN
相当于A JOIN A最后放一张图:
参考:
http://stackoverflow.com/questions/565620/difference-between-join-and-inner-join
http://stackoverflow.com/questions/3308122/how-do-i-decide-when-to-use-right-joins-left-joins-or-inner-joins-or-how-to-dete/3308153#3308153
http://stackoverflow.com/questions/17946221/sql-join-and-different-types-of-joins/17946222#17946222
相关文章推荐
- SQL各种Join连接总结
- SQL各种Join连接总结
- 每日学习总结:DataTable中去除重复的项、SQL中的各种Join连接讲解
- 每日学习总结:DataTable中去除重复的项、SQL中的各种Join连接讲解
- SQL各种Join连接总结
- SQL各种Join连接总结
- SQL各种Join连接总结
- 图解SQL的各种连接join
- 图解SQL的各种连接join
- SQL的各种连接(cross join、inner join、full join)的用法理解
- 图解SQL的各种连接join
- 图解SQL的各种连接join
- 图解SQL的各种连接join[转]
- 图解SQL的各种连接join
- 图解SQL的各种连接join
- SQL的各种连接(cross join、inner join、full join)的用法理解
- [No00008C]图解SQL的各种连接join让你对SQL的连接一目了然
- 【转】图解SQL的各种连接join
- sql各种连接笛卡尔积,inner join,left join,right join,full join等测试与区别
- 图解SQL的各种连接join