内连接
两种语法规则:
select table1.column,table2.column
from table1,table2
where table1.column1 = table2.column2;
通过外键字段:
select table1.column,table2.column
from table1 inner join table2 on table1.column1 = table2.column2;
一张表里数据有关联,通过增加别名的方式,来建立内连接,比如一张员工表里有上下级的关系:
select t1.empno,t1.name,t2.empno,t2.name
from emp as t1 join emp as t2
on t1.MGR = t2.WMPNO;
外链接
左外链接left
两个表在连接过程中除返回满足连接条件外,还返回左表中不满足条件的行。
select deptno,dname,empno,ename,job
from dept left outer jion emp using(depno);
outer可省略,using里连接的字段一定要相同;
或者在外连接查询语句 jion前加left;
右外链接right
两个表在连接过程中除返回满足连接条件外,还返回右表中不满足条件的行。
全外连接full
两个表在连接过程中除返回满足连接条件外,还返回两表中不满足条件的行。
子查询
select 字段列表 from table
where 表达式 operate(select 字段列表 from table);
主查询使用子查询查询的结果,根据子查询的结果写主查询的语句
如果返回的是单行单列的,一般是在where后使用
如果子查询返回的结果是多行,可以使用all(和子查询返回的所有结果作比较),any(和子查询返回的任意一个结果作比较),in(等于放回值得任意一个)。