Unique movies by UNION 两个join的结果,MYSQL
Unique movies by UNION the results of two join, MYSQL
我运行以下查询 UNION 对以下 4 个表的两个连接的结果:
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 和 Answer 表中),另一种是通过 Crowdsourcing(数据存储在 member_CROWD 和 Answer_CROWD)。
现在的问题是,我想知道例如 "Unique Number of Movies selected by users",但来自所有用户(朋友和人群)。上面的查询可以 UNION 两个连接结果,但答案仍然不是唯一的(因为它们仅在每个连接结果中是唯一的)。
有人可以帮助我了解如何在整个实验中获得独特的#of 电影吗?
谢谢,
Distinct 可以是 运行 在 mysql 中的计数中,这非常方便。
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
) a
我运行以下查询 UNION 对以下 4 个表的两个连接的结果:
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 和 Answer 表中),另一种是通过 Crowdsourcing(数据存储在 member_CROWD 和 Answer_CROWD)。
现在的问题是,我想知道例如 "Unique Number of Movies selected by users",但来自所有用户(朋友和人群)。上面的查询可以 UNION 两个连接结果,但答案仍然不是唯一的(因为它们仅在每个连接结果中是唯一的)。
有人可以帮助我了解如何在整个实验中获得独特的#of 电影吗?
谢谢,
Distinct 可以是 运行 在 mysql 中的计数中,这非常方便。
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
) a