sql内连接、外连接和自连接查询
来源:互联网 发布:tcp网络调试助手 编辑:程序博客网 时间:2024/05/16 12:21
一. 前言:
通常在项目中对表的查询都是关联多张表,多表查询就涉及到sql的内连接、外连接和自连接查询。本篇文章将简单的介绍这些sql连接的使用,希望对大家有所帮助。
二. 数据准备:
先准备两张表:
1. 学生表:student
select * from student;
2. 教师表:teacher
select * from teacher;
三. 关联查询:
1. 内连接:在每个表中找出符合条件的共有记录。[x inner join y on...]
第一种写法:(只使用where)
select t.teacher_name, s.student_name from teacher t,student s where t.id = s.teacher_id;
第二种写法:(join .. on.. )
select t.teacher_name, s.student_name from teacher t join student s on t.id = s.teacher_id;
第三种写法:(inner join .. on.. )
select t.teacher_name, s.student_name from teacher t inner join student s on t.id = s.teacher_id;
2. 外连接
外连接有三种方式:左连接,右连接和全连接。
2.1 左连接:根据左表的记录,在被连接的右表中找出符合条件的记录与之匹配,如果找不到与左表匹配的,用null表示。[x left [outer] join y on...
第一种写法:(left join .. on ..)
select t.teacher_name, s.student_name from teacher t left join student s on t.id = s.teacher_id;
第二种写法:(left outer join .. on ..)
select t.teacher_name, s.student_name from teacher t left outer join student s on t.id = s.teacher_id;
第三种写法:"(+)" 所在位置的另一侧为连接的方向
select t.teacher_name, s.student_name from teacher t, student s where t.id = s.teacher_id(+);
2.2 右连接:根据右表的记录,在被连接的左表中找出符合条件的记录与之匹配,如果找不到匹配的,用null填充。[x right [outer] join y on...]
第一种写法:()
select t.teacher_name, s.student_name from teacher t right join student s on t.id = s.teacher_id;
第二种写法:
select t.teacher_name, s.student_name from teacher t right outer join student s on t.id = s.teacher_id;
第三种写法:"(+)" 所在位置的另一侧为连接的方向
select t.teacher_name, s.student_name from teacher t, student s where t.id(+) = s.teacher_id;
2.3 全连接:返回符合条件的所有表的记录,没有与之匹配的,用null表示(结果是左连接和右连接的并集)
第一种写法:(full join .. on ..)
select t.teacher_name, s.student_name from teacher t full join student s on t.id = s.teacher_id;
第二种写法:(full outer join .. on)
select t.teacher_name, s.student_name from teacher t full outer join student s on t.id = s.teacher_id;
3. 自连接
自连接,连接的两个表都是同一个表,同样可以由内连接,外连接各种组合方式,按实际应用去组合。
SELECT a.*, b.* FROM table_1 a,table_1 b WHERE a.[name] = b.[name]
- sql内连接、外连接和自连接查询
- sql内连接、外连接和自连接查询
- sql内连接、外连接和自连接查询
- sql内连接、外连接和自连接查询
- sql内连接、外连接和自连接查询
- sql内连接、外连接和自连接查询
- SQL内连接 外连接 自连接
- SQL查询语句,内连接,外连接
- SQL 内连接,外连接数据查询
- 查询的内连接 外连接 自连接
- Mysql中的关联查询(内连接,外连接,自连接)
- sql内自连接
- sql连接类型:内连接、外连接和交叉连接
- 自连接、外连接和自连接查询
- SQL自连接查询
- SQL连接查询 内连接,左外连接,右外连接,全连接,交叉连接
- SQL数据库中 内连接 外连接和自连接(备忘)
- SQL数据库中 内连接 外连接和自连接(备忘)
- GMSSL SM9-密钥交换流程
- Android Studio工程导入,导入依赖包
- 准备好迎接你的“新同事”了吗?他叫人工智能 | 精选
- 一次FragmentTabHost切换Tab崩溃分析之旅
- SSS1629|7.1游戏耳机方案|网吧游戏耳机方案|USB耳麦方案|开发设计
- sql内连接、外连接和自连接查询
- 【AI英雄风云榜】为TA投票:谁是2017中国AI领域最牛的人?
- (十五)消息队列MQ
- Android studio http请求获取数据失败或者获取不到数据原因
- Qt定时器事件与计数器
- 火爆不亚于中国?看看印度聊天机器人市场现状 | 分析
- 政府牵头!中国要造强大AI芯片挑战英伟达地位 | 聚焦
- Spring中引入其他配置文件
- spring boot整合cxf发布webservice服务和spring boot整合cxf客户端调用webservice服务