1.笛卡尔积查询select*fromdept,emp--此条语句的结果是两张表相乘的结果。如果左边表有m条记录,右边表有n条记录,则查询出m*n条记录。但这样的结果中往往包含大量 1.笛卡尔积查询 selec
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号部门的名称和其中员工的姓名