SELECT ui.*
FROM users_table as ui
WHERE ui.id
IN
(
SELECT Group_concat
(REPLACE
(REPLACE
(REPLACE(ac.user_id,',,','-'),',',''),'-',',')) AS au_users
FROM email_access as uu
LEFT JOIN bill_authorizationcodes AS ac
ON ac.customer_id = uu.cust_id
WHERE uu.user_id = 2
AND ac.user_id !=""
)
它没有选择所有的 ID 详细信息... 它只选择第一个ID....
最佳答案
您使用了错误的方法。 In 不需要一个带有逗号分隔值的字符串,而是一个值列表。只需使用
SELECT ui.* FROM users_table as ui
WHERE ui.id IN (
SELECT ac.user_id
FROM email_access as uu
LEFT JOIN bill_authorizationcodes AS ac ON ac.customer_id = uu.cust_id
WHERE uu.user_id = 2 AND ac.user_id !="")
关于mysql - 如何在 IN() 函数内部使用 group_concat ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23098751/