除了常用的两个表连接之外,SQL(MySQL) JOIN 语法还支持多表连接。多表连接基本语法如下:

1 ... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON condition INNER|LEFT|RIGHTJOIN table3 ON condition ...

JOIN 多表连接实现了从多个表中获取相关数据,下面是三个原始数据表:

article 文章表:
aid title content uid tid
1 文章1 文章1正文内容… 1 1
2 文章2 文章2正文内容… 1 2
3 文章3 文章3正文内容… 2 1
5 文章5 文章5正文内容… 4 1
user 用户表:
uid username email
1 admin admin@5idev.com
2 小明 xiao@163.com
3 Jack jack@gmail.com
type 文章类型表:
tid typename
1 普通文章
2 精华文章
3 草稿

MySQL INNER JOIN 多表

我们使用 INNER JOIN 列出三个表中都具有关联关系的数据:

1 SELECT article.aid,article.title,user.username,type.typename FROM articleINNER JOIN user
2 ON article.uid=user.uid INNER JOIN type ON article.tid=type.tid

返回查询结果如下:

aid title username typename
1 文章1 admin 普通文章
2 文章2 admin 精华文章
3 文章3 小明 普通文章

MySQL LEFT JOIN 多表

使用 LEFT JOIN 三个表查询:

1 SELECT article.aid,article.title,user.username,type.typename FROM articleLEFT JOIN user
2 ON article.uid=user.uid LEFT JOIN type ON article.tid=type.tid

返回查询结果如下:

aid title username typename
1 文章1 admin 普通文章
2 文章2 admin 精华文章
3 文章3 小明 普通文章
4 文章4 NULL 普通文章

MySQL RIGHT JOIN 多表

使用 RIGHT JOIN 三个表查询:

1 SELECT article.aid,article.title,user.username,type.typename FROM articleRIGHT JOIN user
2 ON article.uid=user.uid RIGHT JOIN type ON article.tid=type.tid

返回查询结果如下:

aid title username typename
1 文章1 admin 普通文章
2 文章2 admin 精华文章
3 文章3 小明 普通文章
NULL NULL NULL 草稿

可见,在 RIGHT JOIN 右连接中,只是列出最后一个右连接表的所有数据。

说明

对于 MySQL 多表 JOIN,还可以 INNER、LEFT 和 RIGHT 混用,其返回结果与各关键字顺序有关,感兴趣可自行测试。

最新文章

  1. 【USACO 3.2】Factorials(阶层非零尾数)
  2. Android的Testing和Instrumentation
  3. php截取字符串中的关键字,并高亮显示
  4. 【PHP】phpcms html去除空白
  5. hibernate--关联映射(多对一,一对一)
  6. 编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个对立的元素存于vector中
  7. .NET开发不可错过的25款高效工具
  8. aws部署从无到有
  9. 《Java从0开始的成长之路》
  10. 每一个程序员都应该知道的高并发处理技巧、创业公司如何解决高并发问题、互联网高并发问题解决思路、caoz大神多年经验总结分享
  11. .Net Framework项目引用.NetStandard标准库出现版本冲突解决办法
  12. 【XSY3042】石像 拓扑排序 状压DP 洲阁筛
  13. Python学习之路基础篇--10Python基础,函数进阶
  14. Linux内核很吊之 module_init解析 (下)【转】
  15. android studio相关配置
  16. EasyUI datagrid 查询、设置、提交 三
  17. Windows 2016 无域故障转移群集部署方法 超详细图文教程 (一)
  18. Python版本微信跳一跳,软件配置
  19. cxgrid动态显示行号
  20. Less与Sass框架

热门文章

  1. adbl连接不上 daemon not running. starting it now on port 5037 ADB server didn't ACK
  2. Yarn 工作机制
  3. [2019杭电多校第五场][hdu6625]three arrays(01字典树)
  4. EA逆向生成数据库E-R图(mysql数据库-->ER图)
  5. .net 关于路径的总结
  6. nginx读取请求体
  7. the sum of two fixed value
  8. vue.js(12)--过滤器
  9. IC设计流程介绍
  10. python基础--匿名函数