MySQL JOIN 多表连接
除了常用的两个表连接之外,SQL(MySQL) JOIN 语法还支持多表连接。多表连接基本语法如下:
1 |
... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON condition INNER|LEFT|RIGHTJOIN table3 ON condition ... |
JOIN 多表连接实现了从多个表中获取相关数据,下面是三个原始数据表:
| 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 |
| uid | username | |
|---|---|---|
| 1 | admin | admin@5idev.com |
| 2 | 小明 | xiao@163.com |
| 3 | Jack | jack@gmail.com |
| 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 混用,其返回结果与各关键字顺序有关,感兴趣可自行测试。
MySQL JOIN 多表连接的更多相关文章
- join多表连接和group by分组
join多表连接和group by分组 上一篇里面我们实现了单表查询和top N查询,这一篇我们来讲述如何实现多表连接和group by分组. 一.多表连接 多表连接的时间是数据库一个非常耗时的操作, ...
- MySql left join 多表连接查询优化语句
先过滤条件然后再根据表连接 同时在表中建立相关查询字段的索引这样在大数据多表联合查询的情况下速度相当快 创建索引: create index ix_register_year ON dbo.selec ...
- python实现简易数据库之三——join多表连接和group by分组
上一篇里面我们实现了单表查询和top N查询,这一篇我们来讲述如何实现多表连接和group by分组. 一.多表连接 多表连接的时间是数据库一个非常耗时的操作,因为连接的时间复杂度是M*N(M,N是要 ...
- MySQL 约束、表连接、表关联、索引
一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性. 外键:是另一表的唯一性 ...
- mysql 三个表连接查询
权限表(permission)10 字段名称 类型 约束 描述 authorityid integer Pk not null 权限流水号id PK userNameId int not nul ...
- c# DataTable join 两表连接
转:https://www.cnblogs.com/xuxiaona/p/4000344.html JlrInfodt和dtsource是两个datatable,通过[姓名]和[lqry]进行关联 v ...
- 表连接sql执行计划学习
循环嵌套连接(Nested Loop Join) 合并连接(Merge Join) 哈西匹配(Hash Join) 文章:浅谈SQL Server中的三种物理连接操作 循环嵌套,如果内循环列上有索引, ...
- mysql join表连接
1.表连接,就是将两个表合并起来,被合并的表的记录要通过中间字段,一一匹配起来左边的表的记录,形成一张临时的合并的表,并且每条记录的值都是两张表一一准确对应的 实例 尝试以下实例: root@host ...
- Mysql 多表连接查询 inner join 和 outer join 的使用
JOIN的含义就如英文单词“join”一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接.这里描述先甩出一张用烂了的图,然后插入测试数据. 首先先列举本篇用到的分类(内连接,外连接,交 ...
随机推荐
- Ultra.Base
winform 基础类库 https://github.com/ZixiangBoy/Ultra.Base
- DEDECMS首页,列表页调用自定义图片字段,只显示图片地址
第一步:将自定义字段“图片”类型改为“图片(仅地址)”类型. 第二部:在{dede:arclist row='1' addfields='stu' titlelen='24' orderby='pub ...
- Jmeter JDBC请求-----数据库读取数据进行参数化 通过SSH跳板机连接数据库
前期准备: jdbc驱动:mysql-connector-java-5.1.7-bin.jar Jmeter 要链接MySQL数据库,首选需要下载mysql jdbc驱动包(注:驱动包的版本一定要与你 ...
- 【Unity Shader】---准确认识SubShader语义块结构、渲染状态设定、Tags标签
一[SubShader] 每个UnityShader文件可以包含多个SubShader语义块,但至少要有一个.当Unity需要加载这个UnityShader时,Unity会扫描所有的SubShader ...
- 《深入浅出WPF》学习总结之XAML标签语言二
x名称空间 “x名称空间”的这个X是映射XML名称空间时给他取的名字(如果用的是字母y,那他就叫“y名称空间了”),x名称空间里的成员(x.name.x.class)是专门给XAML编译器看的.用来引 ...
- Netty编码的艺术
Netty 编码器原理和数据输出: Netty 默认提供了丰富的编解码框架供用户集成使用,我们只对较常用的Java 序列化编码器进行讲解.其它的编码器,实现方式大同小异.其实编码器和解码器比较类似, ...
- 旧接口注册LED字符驱动设备(静态映射)
#include <linux/init.h> // __init __exit #include <linux/module.h> // module_init module ...
- 移动端抓包工具——Fiddler(一)
web端抓包一般利用浏览器自带的检查功能(F12),然后看Network项,根据请求响应判断出问题 移动端怎么抓包呢,这里介绍一款常用的抓包工具——Fiddler 前提: 1.必须确保安装fiddl ...
- 前后台交互实例二:前台通过django在数据库里面增删改查数据
url(r'^userinfo/', views.userinfo), url(r'^userdetail-(?P<nid>\d+)/', views.userdetail), url(r ...
- 机器学习ROC图解读
1. 分类器评估指标 对于二分类问题,可将样例根据其真实类别和分类器预测类别划分为:真正例(True Positive,TP):真实类别为正例,预测类别为正例.假正例(False Positive,F ...