這個小SQL錯誤正在困擾着我。 (?)它似乎並沒有要與查詢問題,只是範圍,例子最好:SQL問題,左加入[..] IN()
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列表的列(gangs_ocs_process.membersin)(即1,2,5)。我試圖一次性獲取每個ID的用戶名(來自users
表)。
問題是LEFT JOIN users u ON u.userid IN (ocp.membersin)
如果我substitue在1,2,4
爲ocp.membersin
(把文字列表,而不是列名),它工作正常。它返回一個包含用戶名(image)的列。但是,如果我在ocp.membersin離開,我得到這個錯誤:
#1054 - Unknown column 'ocp.membersin' in 'on clause'
這是我甚至在左邊用在第一次連接,因此我有點失落。
任何幫助將是巨大的:)
對於100萬次編輯感到抱歉。你能否詳細說明gangs_ocs_process,gangs_oc和用戶之間的關係。 – cmsjr 2009-02-20 13:54:51
沒關係。該關係並不重要,因爲它將字段作爲字符串返回,對於只需要值列表的IN而言,該關係無法正常工作。大部分編輯工作確實奏效,但我們兩人似乎都錯過了這一點,直到Jeremy在那裏指出它 – damnitshot 2009-02-20 14:06:10