我在下面的4个表上运行了对UNION的以下查询,这是两个联接的结果:
SELECT member_CROWD.worker_Id, member_CROWD.Unreliable, Answer_CROWD.qId, Answer_CROWD.answer
FROM member_CROWD
JOIN `Answer_CROWD`
ON member_CROWD.worker_Id = Answer_CROWD.worker_Id
WHERE member_CROWD.Unreliable = '0' AND Answer_CROWD.qId = 'q8'
GROUP BY Answer_CROWD.answer
UNION
SELECT member.mem_id, member.Unreliable, Answer.qId, Answer.answer
FROM member
JOIN `Answer`
ON member.mem_id = Answer.userId
WHERE member.Unreliable = '0' AND Answer.qId = 'q8'
GROUP BY Answer.answer这是因为我有两个实验来收集数据;一个是让我的朋友填写我的调查(存储在成员和回答表中的数据),另一个是通过众包(存储在member_CROWD和Answer_CROWD中的数据)。
现在的问题是,我想知道例如“由用户选择的独特数量的电影”,但是来自所有用户(朋友和人群)。上面的查询可以合并两个联接结果,但答案仍然不是唯一的(因为它们仅在每个联接结果中是唯一的)。
有人能帮我在整个实验中获得独特的电影#吗?
谢谢,
发布于 2015-06-23 13:21:59
可以在mysql中的计数中运行Distinct,这非常方便。
select Count(Distinct answer) from (
SELECT member_CROWD.worker_Id, member_CROWD.Unreliable, Answer_CROWD.qId, Answer_CROWD.answer
FROM member_CROWD
JOIN `Answer_CROWD`
ON member_CROWD.worker_Id = Answer_CROWD.worker_Id
WHERE member_CROWD.Unreliable = '0' AND Answer_CROWD.qId = 'q8'
GROUP BY Answer_CROWD.answer
UNION
SELECT member.mem_id, member.Unreliable, Answer.qId, Answer.answer
FROM member
JOIN `Answer`
ON member.mem_id = Answer.userId
WHERE member.Unreliable = '0' AND Answer.qId = 'q8'
GROUP BY Answer.answer
) ahttps://stackoverflow.com/questions/31003462
复制相似问题