SQL语句的并集UNION,交集JOIN(内连接,外连接),交叉连接(CROSS JOIN笛卡尔积),差集(NOT IN)
来源:互联网 发布:阿里云服务器乱码 编辑:程序博客网 时间:2024/05/15 01:22
1.
a. 并集UNION SELECT column1, column2 FROM table1 UNION SELECT column1, column2 FROM table2
b. 交集JOIN SELECT * FROM table1 AS a JOIN table2 b ON a.name=b.name
c. 差集NOT IN SELECT * FROM table1 WHERE name NOT IN(SELECT name FROM table2)
d. 笛卡尔积 SELECT * FROM table1 CROSS JOIN table2 与 SELECT * FROM table1,table2相同
2.
SQL中的UNION 与UNION ALL的区别是,前者会去除重复的条目,后者会仍旧保留。
a. UNION SQL Statement1 UNION SQL Statement2
b. UNION ALL SQL Statement1 UNION ALL SQL Statement2
3.
SQL中的各种JOIN SQL中的连接可以分为内连接,外连接,以及交叉连接(即是笛卡尔积)
a. 交叉连接CROSS JOIN 如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积
b. 内连接INNER JOIN 如果仅仅使用 SELECT * FROM table1 INNER JOIN table2 没有指定连接条件的话,和交叉连接的结果一样。 但是通常情况下,使用INNER JOIN需要指定连接条件。 -- 等值连接(=号应用于连接条件, 不会去除重复的列) SELECT * FROM table1 AS a INNER JOIN table2 AS b on a.column=b.column -- 不等连接(>,>=,<,<=,!>,!<,<>) 例如 SELECT * FROM table1 AS a INNER JOIN table2 AS b on a.column<>b.column -- 自然连接(会去除重复的列)
c. 外连接OUTER JOIN 首先内连接和外连接的不同之处: 内连接如果没有指定连接条件的话,和笛卡尔积的交叉连接结果一样
- SQL 查询效率
- 如何通过命令行来操纵eclipse?
- 银行项目(使用链表进行操作)
- 找最低公共父节点
- winsock
- SQL语句的并集UNION,交集JOIN(内连接,外连接),交叉连接(CROSS JOIN笛卡尔积),差集(NOT IN)
- 以Facebook为案例剖析科技公司应有的工具文化
- 解决INSTALL_FAILED_MISSING_SHARED_LIBRARY方法汇总主帖
- SQL中的CASE使用方法
- 数据结构面试之七——图的常见操作
- HDU 3729 I'm Telling the Truth
- Git学习教程(二):配置和初始化
- googlecode 的项目无法通过 SVN 访问解决方法
- struts2标签嵌套问题