这是我的数据库结构
https://docs.google.com/open?id=0B9ExyO6ktYcOenZ1WlBwdlY2R3c
我的 SQL 查询看起来像那样
SELECT
u.fullname,
a.id,
a.content,
a.addDT,
a.`right`,
acr.score,
acr.checkDT
FROM
answers a,
users u
LEFT JOIN `answer_chk_results` acr ON acr.aid = a.id
WHERE
a.qid = 7
AND u.id = a.uid
GROUP BY
a.`right` DESC
获取错误信息
[Err] 1054 - “on 子句”中的未知列“a.id”
我很确定 a.id 列存在
我错过了什么?
最佳答案
您不能将连接语法与逗号分隔的表语法混合使用。如果要左连接,则需要对其他两个表使用内部连接。
SELECT
u.fullname,
a.id,
a.content,
a.addDT,
a.`right`,
acr.score,
acr.checkDT
FROM
answers a
INNER JOIN users u ON u.id = a.uid
LEFT JOIN `answer_chk_results` acr ON acr.aid = a.id
WHERE
a.qid = 7
GROUP BY
a.`right` DESC
这可能也有效,但不能保证:
SELECT
u.fullname,
a.id,
a.content,
a.addDT,
a.`right`,
acr.score,
acr.checkDT
FROM
(answers a,
users u)
LEFT JOIN `answer_chk_results` acr ON acr.aid = a.id
WHERE
a.qid = 7
AND u.id = a.uid
GROUP BY
a.`right` DESC
关于MySQL 未知列问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12326707/