MySQL嵌套查询求助:使用SELECT语句关联多表查询指定字段
多表关联查询实现方案
根据你的员工数据库结构,要查询指定字段,需要通过表间关联实现。以下是匹配你提供的ER图结构的SQL语句:
内连接查询(仅返回存在完整关联的记录)
SELECT d.dept_name, e.first_name, e.last_name, t.title_name FROM employee e JOIN dept_emp de ON e.emp_no = de.emp_no JOIN department d ON de.dept_no = d.dept_no JOIN title t ON e.emp_no = t.emp_no;
左连接查询(包含无部门/职位的员工记录)
如果需要保留所有员工信息,即使部分员工未分配部门或职位,可使用左连接:
SELECT d.dept_name, e.first_name, e.last_name, t.title_name FROM employee e LEFT JOIN dept_emp de ON e.emp_no = de.emp_no LEFT JOIN department d ON de.dept_no = d.dept_no LEFT JOIN title t ON e.emp_no = t.emp_no;
特殊场景调整
如果你的employee表直接通过dept_id字段关联department(无需dept_emp中间表),可修改关联条件为:
SELECT d.dept_name, e.first_name, e.last_name, t.title_name FROM employee e JOIN department d ON e.dept_id = d.dept_id JOIN title t ON e.emp_no = t.emp_no;
内容的提问来源于stack exchange,提问作者Ghost
相关产品推荐
相关产品推荐

