MySQL 连接语法未知列

标签 mysql

为什么 sm.status_id 和 sm.user_id 出现未知列错误?我通常不使用 JOIN 关键字进行表连接。

...
FROM questions q, connections sm
JOIN users u ON q.user_id = u.id
JOIN users lu ON q.last_user = lu.id
JOIN (SELECT q2.id FROM questions q2 WHERE q2.status_id = sm.status_id LIMIT 2) x ON x.id = q.id
WHERE sm.user_id = 38
GROUP BY th.id

最佳答案

您当前的查询存在一些问题。

首先,您正在混合 JOIN 语法。您有两个逗号分隔的值,然后使用 ON 条件连接。

其次,您试图访问内部子查询中表的别名,但您无法执行此操作。

我的建议是尝试这样的事情:

FROM questions q
JOIN users u 
    ON q.user_id = u.id
JOIN users lu 
    ON q.last_user = lu.id
JOIN 
(
    SELECT q2.id 
    FROM questions q2 
    JOIN connections sm
        ON q2.status_id = sm.status_id 
    WHERE sm.user_id = 38
    LIMIT 2
) x ON x.id = q.id
GROUP BY th.id

您没有发布您的 SELECT 列表,但如果您想在 select 列表中包含 connections 表中的字段,那么您需要再次加入它或将字段包含在子查询中。

关于MySQL 连接语法未知列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13724330/

相关文章:

PHP 将变量存储在缓存中

javascript - 选择选项 Angular、PHP 和 mysql

PHP:将记录从 MYSQL 插入到 JQuery 数组中

mysql - 如何将MySQL时间戳转换为带有时区的自定义格式?

php - 为什么数据库没有更新?

php - UTF-8贯穿始终

mysql 查询从两个日期获取月份名称列表

mysql - 一个空的 tearDown 方法使 phpunit 测试通过

mysql - 这4项的总和结果选择一项

php - while/if/else 的 echo 问题