我在问卷后面有这些(简化的)表格:
questions responses ------------ ------------ id | related id | questions ------------ ------------- 1 | 3,4,5,6 1 | 1,3 2 | 4,5,6 2 | 2 3 | 3,4,5 3 | 3,4 4 | 3,5,6 4 | 5 5 | 6 6 | 3,4,5
相关的是填写调查问卷的用户的个人资料,问题仅显示他们的个人资料编号是否在该字段中。每个答复的措辞取决于与之相关的问题的答案。
我需要获取一个响应ID列表,其中配置文件号与该响应的相关问题相关:
SELECT `responses`.`id`
FROM `responses`
INNER JOIN `questions`
ON `responses`.`questions` LIKE CONCAT(CONCAT('%',`questions`.`id`),'%')
WHERE `questions`.`related` LIKE '%3%'
其中3是个人资料。在这种情况下,我应该只返回ID 1和3。我尝试过各种group by子句,但是我回来的id列表永远不正确。