为什么 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/