假设有 2 个这样的表:
> [persons] [groups]
> id | name id | member
> ---+------- ---+-------
> 1 | anna 1 | 1,3,4
> 2 | jake 2 | 2,4,5
> 3 | jhon 3 | 1,2,3
> 4 | jessica 4 | 4,5
> 5 | albert 5 | 1,6,7
我尝试使用获取组 ID 2 和 3 的成员
select id,name from persons
where id in (select member from groups where id in (2,3));
但只返回一条记录(id=2)。有什么建议吗?
最佳答案
不确定您的目标是什么,但这只是我的猜测:
http://sqlfiddle.com/#!9/f6942/3
SELECT DISTINCT persons.id, persons.name
FROM persons
INNER JOIN groups
ON FIND_IN_SET(persons.id,groups.member)>0
AND groups.id IN (2,3)
我同意@hyades 的观点,你应该更好地重新设计你的数据库。
关于MySQL在子查询中选择检索一条或多条数据记录作为一组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29736605/