我在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/