Mysql 不明确的列名错误
我知道很多人都发过这方面的帖子,但他们中似乎没有一个人像我一样有这样的错误 当我运行此语句时,出现错误1052Mysql 不明确的列名错误,mysql,syntax-error,Mysql,Syntax Error,我知道很多人都发过这方面的帖子,但他们中似乎没有一个人像我一样有这样的错误 当我运行此语句时,出现错误1052 mysql> SELECT module_staff.StaffName AS Staff, SUM(modules.HoursPerWeek) AS Total_Worked FROM module_staff, modules WHERE ModuleCode IN (SELECT ModuleCode
mysql> SELECT module_staff.StaffName AS Staff,
SUM(modules.HoursPerWeek) AS Total_Worked
FROM module_staff, modules
WHERE ModuleCode IN (SELECT ModuleCode
FROM module_staff
WHERE StaffName ='Nigel Cosworth');
但下面的代码确实有效
mysql> SELECT Title,
SUM(modules.HoursPerWeek) AS Total_Worked
FROM modules
WHERE ModuleCode IN(SELECT ModuleCode
FROM module_staff
WHERE StaffName ='Nigel Cosworth');
module_staff有ModuleCode和StaffName列
模块栏只需要每周小时数、标题和模块代码,我认为错误在于
JOIN
。
尝试按如下方式更新查询:
SELECT ms.StaffName AS Staff, SUM(m.HoursPerWeek) AS Total_Worked
FROM module_staff ms
LEFT JOIN modules m
ON ms.ModuleCode = m.ModuleCode
WHERE ms.StaffName ='Nigel Cosworth';
将适用于u…问题是您在WHERE子句中引用了
ModuleCode
,并且它存在于联接中的两个表中。你想要哪张桌子?你需要在列前面加上表格。好的,谢谢你对我的代码的编辑。下次发帖时我会记住这一点。你是对的,谢谢你。还感谢您向我展示了语句中表格的命名,以节省键入的时间。我在这里还处于初级阶段
SELECT ms.StaffName AS Staff, SUM(m.HoursPerWeek) AS Total_Worked
FROM module_staff ms
LEFT JOIN modules m
ON ms.ModuleCode = m.ModuleCode
WHERE ms.StaffName ='Nigel Cosworth';