10 连接查询

1.笛卡尔积查询

 select * from dept,emp  -- 此条语句的结果是两张表相乘的结果。如果左边表有m条记录,右边表有n条记录,则查询出m*n条记录。但这样的结果中往往包含大量错误数据,一般不使用

 

 

 可这样修改

2. 内连接查询: 查询出左边表有且右边表也有的记录

● select * from dept,emp where dept.id = emp.dept_id;

select * from dept inner join emp on dept.id = emp.dept_id;

 

 

 

3.外连接查询

左外连接查询 :在内连接的基础上增加上左边表有而右边表没有的记录

● select * from dept left join emp on dept.id = emp.dept_id;

 

 

 

右外连接查询 :在内连接的基础上增加上边表有而左边表没有的记录

● select * from dept right join emp on dept.id = emp.dept_id;

 

 

 

全外连接查询: 但mysql 不支持这样的语法

● select * from dept full join emp on dept.id = emp.dept_id;

 可先查左外,再查右外。然后合并

● select * from dept left join emp on dept.id = emp.dept_id

   union

   select * from dept right join emp on dept.id = emp.dept_id;

 

 

查询4号部门的名称和其中员工的姓名

 

posted @ 2020-05-13 10:57  深海心  阅读(133)  评论(0)    收藏  举报