软件测试最常用的 SQL 命令(二) | 高级 Join 多表查询

简介: - INNER JOIN:如果表中有至少一个匹配,则返回行- LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行- RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行- FULL JOIN:只要其中一个表中存在匹配,则返回行- INNER JOIN-取出一个员工的员工号、生日、部门名字- LEFT JOIN-取出一个员工的员工号、生日、部门名字,员工号和生日为必展
  • INNER JOIN:如果表中有至少一个匹配,则返回行
    • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
    • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
    • FULL JOIN:只要其中一个表中存在匹配,则返回行
    • INNER JOIN-取出一个员工的员工号、生日、部门名字
    • LEFT JOIN-取出一个员工的员工号、生日、部门名字,员工号和生日为必展示项 。
  • select e.emp_no,e.birth_date,d.dept_no,n.dept_name
  • from employees e
  • left join (dept_emp d,departments n)
  • on e.emp_no=d.emp_no and d.dept_no=n.dept_no
  • order by emp_no;
    • RIGHT LEFT-将dept_emp和departments的数据合并展示,且部门表departments信息为必展示项。
  • select * from dept_emp d
  • right join departments n
  • on d.dept_no=n.dept_no
  • order by emp_no;
    • FULL JOIN-将dept_emp表和departments表的行全部合并返回
  • 注:因为 MySQL 不支持 full join,所以想要实现此功能需要使用 left join union right join 的方法:
- 
select * from dept_emp d
- 
left JOIN departments n
- 
on d.dept_no=n.dept_no
- 
union
- 
select * from dept_emp d
- 
right join departments n
- 
on d.dept_no=n.dept_no
- 
order by emp_no limit 100;
- 

- 
相关文章
|
22天前
|
SQL 关系型数据库 MySQL
六、SQL多表查询
六、SQL多表查询
31 0
|
8月前
|
SQL XML Java
Mybatis:SQL注入问题 like模糊查询 多表查询 动态SQL
Mybatis:SQL注入问题 like模糊查询 多表查询 动态SQL
111 0
|
22天前
|
SQL
SQL多表查询的几种连接方式
SQL多表查询时,主要使用以下几种连接方式
|
9月前
|
SQL 关系型数据库 MySQL
SQL99语法实现多表查询
SQL99语法实现多表查询
44 0
|
22天前
|
SQL
SQL语句多表查询练习
SQL语句多表查询练习
14 0
|
8月前
|
SQL
一条集多表查询、字段与字段拼接、合并每张表共同字段、新增列并赋值的SQL
一条集多表查询、字段与字段拼接、合并每张表共同字段、新增列并赋值的SQL
31 0
|
12月前
|
SQL Oracle 关系型数据库
[SQL Server]数据库入门之多表查询
[SQL Server]数据库入门之多表查询
165 0
|
SQL 关系型数据库 MySQL
软件测试最常用的 SQL 命令(二) | 高级 Join 多表查询
软件测试最常用的 SQL 命令(二) | 高级 Join 多表查询
85 0
|
SQL Java 关系型数据库
MyBatis【多表查询与动态SQL使用】
MyBatis【多表查询与动态SQL使用】
MyBatis【多表查询与动态SQL使用】