下午,

以下是我创建的帮助您回答问题的关系模式。

JOBS (**jobClass**, Description, chargePerHour)

EMPLOYEES (**empNo**, *jobClass*, firstName, lastName)


外键jobClass引用JOBS

PROJECTS (**projectNo**, projectName)

PROJECTS2EMPLOYEES (**projEmpKey**, *projectNo*, *empNo*, hoursBilled, projectLeader)


外键项目无参考项目
外键empNo引用员工

Bold = PK (Primary Key)
Italic = FK (Foreign Key)


我试图从“项目”表中选择projectName,并从“员工”表中选择每个项目的项目负责人的全名。

在project2employees表的projectLeader字段中,项目负责人以1区分。

我最后的尝试是

SELECT projectName, CONCAT_WS(" ", firstName, lastName) FROM Projects, Employees WHERE projectNo IN
(SELECT projectNo from projects2employees WHERE projectLeader = 1)


但是效果不是很好。

任何帮助,将不胜感激

最佳答案

尝试这个 :

SELECT p.projectName, CONCAT(firstName, ' ', lastName)
  FROM Projects p
  JOIN projects2employees pe
    ON (p.projectNo = pe.projectNo and pe.projectLeader = 1)
  JOIN employees e
    ON (pe.empno= e.empno)

关于mysql - 使用子查询难以从多个表中选择数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40400329/

10-10 11:06