❤️💕💕数据库的高级指南,如何在 MySQL、SQL Server、MS Access、Oracle、Sybase、Informix、Postgres 和其他数据库系统中使用 SQL,如何从头实现一个数据库系统,我们开始吧!Myblog:http://nsddd.top
[TOC]
多表查询比较简单~
多表查询的sql和单表查询类似 第四节也见过一部分多表查询
多表查询分类:
- 多表查询 – 内连接&外连接
- 多表查询 – 子查询
内连接也分为隐式查询和显示连接
select 字段列表 from 表1,表2.... where 条件
select 字段列表 from 表1 [inner] join 表2 on 条件
join
表示连接on
表示条件
select 字段列表 from 表1 left join 表2 on 条件
select 字段列表 from 表1 right join 表2 on 条件
一般左右外连接可以互换,但是一般左外连接用的多
例如: 我们需要查询工资高于猪八戒的员工信息:
- 先查询猪八戒的工资
select salary from emp where name = '猪八戒';
- 再查询工资高于猪八戒工资的员工
select * from emp where salary > 3600;
可以把上面的综合起来
select * from emp where salary > (select salary from emp where name = '猪八戒');
根据子查询的查询结果不同经历过,作用不同:
- 单行单列:作为条件值,使用
= ! = > <
等条件判断(和上面一样)
select 字段列表 from 表 where 字段名 = (子查询);
- 多行多列:作为条件值,使用
in
等关键字进行条件判断
select 字段列表 from 表 where 字段名 in (子查询)
- 多行多列:作为虚拟表
select 字段列表 from (子查询) where 条件;