【发布时间】:2013-09-01 23:33:33
【问题描述】:
首先,不要责备我尝试这样做 - 我的老板希望我将跨多个表的数据列表转储到单个 CSV 文件中。
此 CSV 包含合并到一张表中的两类人员:永久员工和承包商。
根据您所属的类别,某些值的获取方式会有所不同。例如,如果您是承包商,您的职位描述为contractors.blended_role。如果您是永久的,则职位描述位于roles.blended_role,其中roles.id = staff.role。
所以我尝试了(类似的):
SELECT
stuff,
(CASE
WHEN c.blended_role IS NULL THEN
r.blended_role
ELSE
c.blended_role
END) as `Job Description`,
morestuff
FROM
everyone e
LEFT JOIN contractors c
ON c.id = e.id
LEFT JOIN staff s
ON s.id = e.id
LEFT JOIN roles r
ON r.id = s.role
但我遇到了语法错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'stuff, (CASE WHEN c.blended_role IS NULL THEN r.blended_role EL` at line 2
谁能提出替代方案?
更新
语法错误来自缺少逗号的几行。
【问题讨论】:
-
请发布您遇到的错误
-
您应该发布确切的错误。首先,我认为 CASE 结构中的表别名应该是
c和r而不是cv和rv。 -
@Vimsha 实际错误包含我不想让你知道的真实列名 - 我将发布一个与我得到的相同的错误。
-
@vollie 如果你知道答案,请写下答案,而不是评论!