MySql连接——内连接、外连接(左连接、右连接、全连接)
2016-03-14 16:37
666 查看
1. 内联接
使用比较运算符根据每个表共有的列的值匹配两个表中的行
2. 外联接
1)左联接 left join /left outer join
右表无匹配的时候,行为null,左表的行保留
2)右联接 right join /right outer join
左表无匹配的时候,行为null,右表的行保留
3) 全联接 full join
左表行、右表的行全保留
3. 示例
-------------------------------------------------
a表 id name b表 id job parent_id
1 张3 1 23 1
2 李四 2 34 2
3 王武 3 34 4
a.id同parent_id 存在关系
--------------------------------------------------
1) 内连接
select a.*,b.* from a inner join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
2)左连接
select a.*,b.* from a left join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
3 王武 null
3) 右连接
select a.*,b.* from a right join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
null 3 34 4
4) 完全连接
select a.*,b.* from a full join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
null 3 34 4
3 王武 null
4. 推荐:ON只进行连接操作,WHERE只过滤中间表的记录
SELECT T1.C1,T2.CX,T3.CY
FROM TAB1 T1
INNER JOIN TAB2 T2 ON (T1.C1=T2.C2)
INNER JOIN TAB3 T3 ON (T1.C1=T2.C3)
LEFT OUTER JOIN TAB4 ON(T2.C2=T3.C3);
WHERE T1.X >T3.Y;
上面这个SQL查询是多表连接的一个示范。
使用比较运算符根据每个表共有的列的值匹配两个表中的行
2. 外联接
1)左联接 left join /left outer join
右表无匹配的时候,行为null,左表的行保留
2)右联接 right join /right outer join
左表无匹配的时候,行为null,右表的行保留
3) 全联接 full join
左表行、右表的行全保留
3. 示例
-------------------------------------------------
a表 id name b表 id job parent_id
1 张3 1 23 1
2 李四 2 34 2
3 王武 3 34 4
a.id同parent_id 存在关系
--------------------------------------------------
1) 内连接
select a.*,b.* from a inner join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
2)左连接
select a.*,b.* from a left join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
3 王武 null
3) 右连接
select a.*,b.* from a right join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
null 3 34 4
4) 完全连接
select a.*,b.* from a full join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
null 3 34 4
3 王武 null
4. 推荐:ON只进行连接操作,WHERE只过滤中间表的记录
SELECT T1.C1,T2.CX,T3.CY
FROM TAB1 T1
INNER JOIN TAB2 T2 ON (T1.C1=T2.C2)
INNER JOIN TAB3 T3 ON (T1.C1=T2.C3)
LEFT OUTER JOIN TAB4 ON(T2.C2=T3.C3);
WHERE T1.X >T3.Y;
上面这个SQL查询是多表连接的一个示范。
相关文章推荐
- MySQL索引类型总结和使用技巧以及注意事项
- YUM 安装并配置MYSQL
- Mysql 主从热备份
- MySQL查询指定行的记录
- 黄聪:MySQL 按指定字段自定义列表排序
- Mysql timestamp 类型
- servlet&jsp 及MySQL 乱码解决方案
- mysql常用字符串操作函数大全,以及实例
- 如何在Windows系统中配置Mysql群集(Mysql Cluster)
- MySQL备份之增量备份方案
- mysql 查看表结构,字段的基本信息(简单明了)。
- mysql工具篇--Workbench的使用
- mySql 时间类型
- MySQL优化必须调整的10项配置
- MySQL数据库的优化
- navicat 1045 access denied for user
- windows mysql 自动备份的几种方法
- Ubuntu Navicat for MySQL安装以及破解方案
- Mysql热备xtrabackup的使用
- Mysql热备xtrabackup的使用