我在MySQL数据库中有三个表
表1包含以下字段

Name of Table: SupervisorTable
supervisorid (autoinc, bigint)
employeeid (bigint) //same as User.userid
supervisorname

Name of Table: User
userid (autoinc, bigint)
userFullName (string)
supervisorid (bigint)
divisionid (bigint)

Name of Table: DivisionTable
divisionid(autoinc, bigint)
divisionname (string)

我想确定一个主管在哪个部门工作,我的输出应该是
主管姓名和部门名称。我最近的一次尝试:
SELECT supervisortable.supervisorname,
       divisiontable.divisionname
  FROM supervisortable,
       user,
       divisiontable
 WHERE supervisortable.employeeid = user.userid;

这给了每个部门主管的名字:
supervisorname  divisionname
----------------------------
UserA           Department1
UserB           Department1
UserA           Department2
...
UserB           DepartmentN

最佳答案

如果您希望查询找到所有主管并在OP中列出所需的输出,则可以执行以下操作:

SELECT S.supervisorname,
       D.divisionname
  FROM SuperisorTable S
  JOIN User U ON S.employeeid= U.supervisorid
  JOIN DivisionTable D ON U.divisionid = D.divisionid

因为没有标准,你得到的是笛卡尔积(这很糟糕,除非你真的想要)。

关于mysql - 有关SQL查询的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6523291/

10-13 00:47