0

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
4

2 に答える 2

2

現在のクエリにいくつか問題があります。

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フィールドをリストに含める場合は、リストに再度参加するか、サブクエリにフィールドを含める必要があります。connectionsselect

于 2012-12-05T13:53:44.527 に答える
0

理由は::次のようにサブクエリ内に表示されるようにするには、select句でその列を使用する必要があります。

Select status_id ,sm.user_id
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
于 2012-12-05T13:34:26.993 に答える