Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个MySQL查询(格式化左连接)有什么问题?_Mysql - Fatal编程技术网

这个MySQL查询(格式化左连接)有什么问题?

这个MySQL查询(格式化左连接)有什么问题?,mysql,Mysql,我的问题如下: SELECT staff_names.staff_ID AS sid staff_names.name AS name, staff_names.rec_type AS rec_type, prod_staff.specialized AS specialized, compspec.name AS compspec_name FROM staff_names JOIN prod_staff USING (staff_ID) LEFT JOIN (prod_staff_comp

我的问题如下:

SELECT 
staff_names.staff_ID AS sid
staff_names.name AS name,
staff_names.rec_type AS rec_type,
prod_staff.specialized AS specialized,
compspec.name AS compspec_name
FROM staff_names JOIN prod_staff USING (staff_ID)
LEFT JOIN (prod_staff_compspec JOIN company_list USING (comp_ID)) compspec
USING (prod_ID, staff_ID, role_ID)
WHERE prod_staff.role_ID = 2
AND prod_staff.prod_ID = 27
AND prod_staff.asst = 'n'
AND episode IS NOT NULL
ORDER BY name
按原样运行表示“compspec”别名附近有错误。删除该选项并将SELECT子句中的“compspec”更改为“company_list”不会返回任何行,即使它应该返回具有给定值的1。左连接似乎是个问题,但我不知道它应该如何格式化

prod_staff表包含prod_ID、staff_ID和role_ID字段。prod_staff_compspec有这些和一个comp_ID字段。prod_staff可能有也可能没有匹配的prod_staff_compspec行,但prod_staff_compspec始终有匹配的公司列表行

我要做的是检索与prod_staff表中的给定角色ID和prod_ID相关联的所有员工姓名列表,以及从company_列表表中检索公司名称(如果prod_staff_compspec表中存在指向该名称的链接,则只有少数人有一个)。

切换为ON以定义表关系。使用comp_ID compspec的左联接生产人员compspec联接公司列表切换为2左联接

select a.staff_id sid, a.name, a.rec_type, b.specialized, d.name compspec_name
from staff_names a
join prod_staff b on a.staff_id = b.staff_id
left join prod_staff_compspec c on b.prod_id = c.prod_id and b.staff_id = c.staff_id and b.role_id = c.role_id
left join company_list d on c.comp_id = d.comp_id
where b.role_id = 2 and b.prod_id = 27 and b.asst = 'n' and episode is not null
order by a.name;