MySQL 未知列问题

标签 mysql sql database

这是我的数据库结构

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/

相关文章:

mysql - INSERT ... ON DUPLICATE KEY UPDATE 我怎么知道更新了哪些记录和插入了哪些记录

mysql - 在同一台服务器上运行 MySQL 和 PostgreSQL

mysql - 如何选择 1 :n related records which are minimum 2 per type in MySQL

java - 我如何使用 HQL/Hibernate 验证我的所有表都是空的?

mysql - 如何连接两个单独的 MySQL 查询以给出一个结果?

php - 如何使用 PHP 发送许可证到期通知?

c# - 尝试使用代码将一行插入数据库,然后在单击按钮后显示该行(使用 CommandText)

php - 我怎样才能释放繁忙的 table ?

mysql - 使用从计算另一个表中提取的值更新 mysql 行

php - 如何用更多字段从数据库中填写选择选项菜单?