MySQL多表连接查询

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









分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS