select ... from join_table
join_type join_table
on join_condition
where where_condition
join_table 参与连接的表
join_type 连接类型:内连接,外连接,交叉连接,自连接
join_condition 连接条件
where_condition where过滤条件
交叉连接:
select ... from join_table cross join join_table2.
返回连接表中所有数据行的笛卡尔积
返回的数据行=表1的行数*表2的行数
内连接:连接条件就是主外键关联
select * from tb_emp e,tb_dept d where e.deptno = d.deptno
select * from tb_dept inner join tb_emp on tb_dept.deptno=tb_emp.deptno
外连接:
select ... from join_table
(left|right|full)[outer] join join_table2
on join_condition
where where_definition
左外连接
select * from tb_emp
left join tb_dept
on tb_emp.deptno = tb_dept.deptno
左连接,左边的表为主表,左边的表记录全部显示,如果没有找到记录则补NULL
右外连接
select * from tb_emp
right join tb_dept
on tb_emp.deptno = tb_dept.deptno
右连接,右边的表为主表,右边的表记录全部显示,如果没有找到记录则补NULL
自连接:参与连接的表都是同一张表
select c.name,c2.name
from tb_course c, tb_course c2
where c.pid=c2.id
2017-05-19
MySQL多表连接查询
评论
发表评论
姓 名: