sql:常用sql语句整理二 (连接查询)
来源:互联网 发布:国产女装品牌知乎 编辑:程序博客网 时间:2024/04/30 17:48
这一篇 我们说一下 比较常见的连接查询
表 设计如下:
例子:
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 存在关联关系
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. 内连接(交集)
内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行。
内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行。
eg1:
select a.*,b.* from a inner join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
2. 外连接。
LEFT JOIN 或 LEFT OUTER JOIN。
左向外连接的结果集包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
select a.*,b.* from a inner join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
2. 外连接。
LEFT JOIN 或 LEFT OUTER JOIN。
左向外连接的结果集包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
eg2:
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
结果是
1 张3 1 23 1
2 李四 2 34 2
3 王武 null
3. 右连接
RIGHT JOIN 或 RIGHT OUTER JOIN。
右向外连接是左向外连接的反向连接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
eg3:
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
RIGHT JOIN 或 RIGHT OUTER JOIN。
右向外连接是左向外连接的反向连接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
eg3:
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. 完全外部连接(并集)
FULL JOIN 或 FULL OUTER JOIN。
完整外部连接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
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
不足之处,请指正!
FULL JOIN 或 FULL OUTER JOIN。
完整外部连接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
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
不足之处,请指正!
阅读全文
0 0
- sql:常用sql语句整理二 (连接查询)
- 常用SQL语句整理(二)
- SQL常用语句,子查询整理
- Oracle维护常用SQL语句整理二
- sql查询语句整理
- 常用sql语句整理
- 常用SQL语句整理
- SQL常用语句整理
- 常用SQL语句整理
- SQL常用语句整理
- sql常用语句整理
- 常用sql语句整理
- 常用SQL语句整理
- SQL查询语句(二)
- SQL 语句整理(二)
- SQL连接查询语句
- sql语句连接查询.
- sql常用语句(二)
- Android开发之应用层到驱动层的接口实现(一)
- Office365批量分配许可(License)
- java代码实现打印菱形
- Pycharm连接Oracle数据库
- 在 Android Native 程序中输出 LOG
- sql:常用sql语句整理二 (连接查询)
- 使用Thrift的网络框架搭建一般性网络应用
- 阅读笔记_《effective-csharp》
- Python MySQLdb连接数据库的应用
- iOS 10 的适配问题
- 理论---<url pattern> 匹配规则
- HashMap中key为null时存到哪里去了
- 勒索病毒防护方案
- Linux 下wifi 驱动开发(四)—— USB接口WiFi驱动浅析