この小さな SQL エラーが私を悩ませています。クエリの問題ではないようです。スコープ(?)だけです。例が最適に機能します。
SELECT ocp.*, oc.*, GROUP_CONCAT( u.username SEPARATOR ', ') AS `memjoined`
FROM gangs_ocs_process ocp, gangs_ocs oc
LEFT JOIN users u ON u.userid IN ( ocp.membersin )
WHERE ocp.ocid =1 AND ocp.gangid =1 AND oc.oc_name = ocp.crimename
GROUP BY ocp.ocid
LIMIT 0 , 30
参加した ID (つまり、1、2、5) のリストを持つ列 (gangs_ocs_process.membersin) があります。これらの ID ごとに (表から) ユーザー名を一度に取得しようとしていますusers
。
問題はLEFT JOIN users u ON u.userid IN ( ocp.membersin )
forを代入1,2,4
するとocp.membersin
(列名の代わりにリテラル リストを入れる)、問題なく動作します。ユーザー名 ( image ) を含む列を返します。ただし、ocp.membersin に残すと、次のエラーが発生します。
#1054 - Unknown column 'ocp.membersin' in 'on clause'
左結合で IN を使用したのはこれが初めてなので、少し迷っています。
どんな助けでも素晴らしいでしょう:)