交叉连接:(不常用)
返回两个表的笛卡尔乘积(也即全组合排列)中符合查询条件的数据行。

内连接
返回连接表中符合连接条件和查询条件的数据行。

左外连接
返回符合连接条件和查询条件(即:内连接)的数据行,且还返回左表中不符合连接条件但符合查询条件的数据行。

右外连接
返回符合连接条件和查询条件(即:内连接)的数据行,且还返回右表中不符合连接条件但符合查询条件的数据行。

全外连接(不常用,MySQL不支持)
返回符合连接条件和查询条件(即:内连接)的数据行,且还返回左表中不符合连接条件但符合查询条件的数据行以及右表中不符合连接条件但符合查询条件的数据行。

例子

表结构和数据:
users表

id name
1 李四
2 王五
4 张三

logs表

id user_id log
1 1 操作了A
2 1 操作了B
3 2 操作了C
4 2 操作了D
5 3 操作了E

交叉连接:
语句

SELECT
a.`id`,
a.`name`,
b.`log`
FROM
`users` AS a,
`logs` AS b

结果

id name log
1 李四 操作了A
2 王五 操作了A
4 张三 操作了A
1 李四 操作了B
2 王五 操作了B
4 张三 操作了B
1 李四 操作了C
2 王五 操作了C
4 张三 操作了C
1 李四 操作了D
2 王五 操作了D
4 张三 操作了D
1 李四 操作了E
2 王五 操作了E
4 张三 操作了E

内连接:
语句

SELECT
a.`id`,
a.`name`,
b.`log`
FROM
`users` AS a
INNER JOIN `logs` AS b ON a.`id` = b.`user_id`

结果

id name log
1 李四 操作了A
1 李四 操作了B
2 王五 操作了C
2 王五 操作了D

左外连接:
语句

SELECT
a.`id`,
a.`name`,
b.`log`
FROM
`users` AS a
LEFT JOIN `logs` AS b ON a.`id` = b.`user_id`

结果

id name log
1 李四 操作了A
1 李四 操作了B
2 王五 操作了C
2 王五 操作了D
4 张三 NULL

右外连接:
语句

SELECT
a.`id`,
a.`name`,
b.`log`
FROM
`users` AS a
RIGHT JOIN `logs` AS b ON a.`id` = b.`user_id`

结果

id name log
1 李四 操作了A
1 李四 操作了B
2 王五 操作了C
2 王五 操作了D
NULL NULL 操作了E

最新文章

  1. FlexSlider jQuery滑动切换插件 参数
  2. LMAX Disruptor—多生产者多消费者中,消息复制分发的高性能实现
  3. Kinect2 随记
  4. c#单例模式的实现
  5. Java中Unicode的编码和实现
  6. 主动模式下FTP的详细工作过程(转) 挺详细
  7. 安装和使用screen
  8. 怎么找到MyEclipse->add struts capabilities
  9. Highcharts下载与使用_数据报表图2
  10. [Qt] QString 和 char* 转换
  11. OC基础 代理和协议
  12. WEB服务器1--开篇
  13. 显示Title和隐藏Title的ListView
  14. UMeditor 百度编辑器Mini学习
  15. Programming C#.Classes and Objects.成员方法
  16. 使用Iterator遍历Sheet(POI)验证及解释结果有序性
  17. canvas作图
  18. Vue.js学习 — 微信公众号菜单编辑器(一)
  19. Java:对象的强、软、弱和虚引用[转]
  20. Java 程序国际化

热门文章

  1. 爬虫基础库之requests模块
  2. 通用TryParse
  3. PAT 天梯赛 L1-046. 整除光棍 【模拟除法】
  4. 字符串哈希小结(BKDR,RK)
  5. 大话设计模式之PHP篇 - 观察者模式
  6. matplotlib模块之plot画图
  7. time_t、pthread_t
  8. win10 x64下的DNW驱动不完全安装方法【转】
  9. Virtual Container Hosts(VCHs) 介绍
  10. awk之腾迅面试题1