使用内部联接的多对多关系的SQL

DBu*_*ton 10 sql postgresql

我在员工和工作组之间有以下多对多关系:

employees table
-----------------
id

empgroups table
---------------
employee_id
workgroup_id

workorders table
----------------
workgroup_id

我正在尝试编写SQL,它将根据员工所属的工作组列出员工的所有工作人员.

这是我的尝试:

SELECT wonum, workgroup_id
FROM workorders
INNER JOIN employees
ON workorders.employee_id = employee_id
INNER JOIN empgroups 
ON employees.employee.id = empgroups.employee_id
WHERE employee_id = 2
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

ERROR:  schema "employees" does not exist
Run Code Online (Sandbox Code Playgroud)

对不起 - 员工的身份不是employee.id

Den*_*rdy 22

这不是你想要的吗?

SELECT wonum, workgroup_id
  FROM workorders
  JOIN empgroups 
    ON empgroups.workgroup_id = workorders.workgroup_id
  JOIN employees
    ON employees.employee_id = empgroups.employee_id
 WHERE employees.employee_id = 2
Run Code Online (Sandbox Code Playgroud)


Erw*_*ter 6

SELECT w.wonum, w.workgroup_id
FROM   workorders w
JOIN   empgroups  e USING (workgroup_id)
WHERE  e.employee_id = 2
Run Code Online (Sandbox Code Playgroud)

employees此查询根本不需要该表。USING在这种情况下缩短语法。表别名也是如此。