交叉联接

1.不带where条件的,将返回两个表的 行乘积

select c.*, e.* from Sales.Customers c
cross join hr.Employees e

2.带where 条件的,交叉联接不能使用ON

select e1.empid,e1.firstname,e1.lastname,
e2.empid,e2.firstname,e2.lastname
from HR.Employees as e1
cross join HR.Employees as e2 where e1.empid= e2.empid

内联接

内联接先对两个表做笛卡尔乘积,再用on进行筛选,Inner join,默认Inner可以忽略。

SELECT E.empid,E.firstname,E.lastname,O.orderid
From HR.Employees AS E
JOIN Sales.Orders AS O
ON E.empid=O.empid

外联接

1)左外连接LEFT [OUTER] JOIN

显示符合条件的数据行,同时显示左边数据表不符合条件的数据行,右边没有对应的条目显示NULL

例如,以下查询会查询出,没有订单的客户信息,orderid 填充NULL

SELECT C.custid,C.companyname,O.orderid
FROM Sales.Customers AS C
LEFT OUTER JOIN Sales.Orders AS O
ON C.custid=O.custid

2)右外连接RIGHT [OUTER] JOIN

显示符合条件的数据行,同时显示右边数据表不符合条件的数据行,左边没有对应的条目显示NULL

例如,以下查询会查出所有的订单信息,没有订单信息的customer信息不会被查出。

SELECT O.orderid,C.custid,C.companyname
FROM Sales.Orders AS O
LEFT OUTER JOIN Sales.Customers AS C
ON O.custid=C.custid

3)全外连接full [outer] join

显示符合条件的数据行,同时显示左右不符合条件的数据行,相应的左右两边显示NULL,即显示左连接、右连接和内连接的并集。

例如以下代码,返回的结果集行数相通,对于没有订单的customer同样会返回数据。

   SELECT C.custid,C.companyname,O.orderid
FROM Sales.Customers AS C
FULL OUTER JOIN Sales.Orders AS O
ON C.custid=O.custid SELECT O.orderid,C.custid,C.companyname
FROM Sales.Orders AS O
FULL OUTER JOIN Sales.Customers AS C
ON O.custid=C.custid

其他联接-复合联接

其他联接-不等联接

其他联接-多联接查查询

最新文章

  1. 【干货分享】流程DEMO-出差申请单
  2. SSH框架
  3. JSF 抽象和实现例子 (函数和属性)
  4. GRUB密码设置
  5. [C++] 井字棋游戏源码
  6. js监听键盘回车
  7. linux终端下 编译c语言程序
  8. java CAS
  9. unittest框架的注意点
  10. PS-添加前景色
  11. new Date() iso不支持兼容性问题
  12. Play - js/css concatenation & minify
  13. poj 1020 Anniversary Cake(切正方形蛋糕+搜索)
  14. 解决java.sql.SQLException: ORA-01789: query block has incorrect number of result columns
  15. 利用hexo+github+nodejs搭建自我博客的一天
  16. js中callback.call()和callback()的区别
  17. loadrunner脚本优化-ParameterList参数类型介绍
  18. JavaScript基础知识点总结
  19. Unity 官方教程 学习
  20. JAVA 基本数据结构--数组、链表、ArrayList、Linkedlist、hashmap、hashtab等

热门文章

  1. 2016/05/25 PHP mysql_insert_id() 函数 返回上一步 INSERT 操作产生的 ID
  2. sbt is a build tool for Scala, Java, and more
  3. Android 返回键的处理
  4. x$kccle视图深入剖析
  5. <转载>调制与解调电路详解
  6. VC FTP服务器程序分析(三)
  7. JSP JDBC 读取SQL Server 数据2
  8. iOS 在UILabel显示不同的字体和颜色(ios6 and later)
  9. js 中整理(一)
  10. python(一):multiprocessing——死锁