我有一个查询,如下所示:这个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_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始终有匹配的company_list行。
我想要做的是检索与prod_staff表中给定的role_ID和prod_ID关联的所有员工姓名列表,以及company_list表中的公司名称,如果prod_staff_compspec表中存在此类链接(只有少数人有一个)。