gpt4 book ai didi

mysql - SQL问题,LEFT JOIN [..] IN()

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:07 25 4
gpt4 key购买 nike

这个小的 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

有一列 (gangs_ocs_process.membersin) 包含已加入的 ID 列表(即 1、2、5)。我试图一次性获取每个 ID 的用户名(来自 users 表)。

问题是LEFT JOIN users u ON u.userid IN (ocp.membersin)

如果我用 1,2,4 代替 ocp.membersin(用文字列表代替列名),它工作正常。它返回一个包含用户名 ( image) 的列。但是,如果我留在 ocp.membersin 中,则会收到此错误:

#1054 - “on 子句”中的未知列“ocp.membersin”

这是我第一次在左连接中使用 IN,所以我有点迷茫。

任何帮助都会很棒 :)

最佳答案

我认为“IN”不适用于这种语法。 MySQL 期望 IN 类似于数据集,而不是分隔字符串。我认为您需要找到一种方法来接收 membersin,将其扩展为 MySQL 可以使用的数据集(可能是临时表),然后加入该数据集。

关于mysql - SQL问题,LEFT JOIN [..] IN(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/569512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com