需要使用COUNT(*)条件

时间:2017-02-02 00:33:02

标签: mysql

我有2个表(cycle和merged_cycles)。 “cycles”有2个我需要定位的字段(userid和cycleid),“merged_cycles”也有2个目标字段(cycleid1和cycleid2)。我需要知道所有在“周期”中有多个记录的cycles.userid,只要在merged-cycles.cycleid1或merged_cycles中的“merged_cycles”中的任何记录中都没有出现任何匹配记录的相应cycles.cycleid。 .cycleid2。我目前使用2个不同的查询工作,但我很好奇是否可以在一个查询中完成。这是我到目前为止所尝试的:

SELECT cycles.cycleid, cycles.userid, cycles.COUNT(*), 
       merged_cycles.cycleid1, merged_cycles.cycleid2
FROM cycles,merged_cycles
WHERE merged_cycles.cycleid1 != cycles.cycleid && merged_cycles.cycleid2 != cycles.cycleid
GROUP BY cycles.userid
HAVING cycles.count(*) > 1

感谢您的任何建议!

1 个答案:

答案 0 :(得分:1)

我认为这可以满足您的需求:

SELECT c.cycleid
FROM cycles c
WHERE NOT EXISTS (SELECT 1
                  FROM merged_cycles mc
                  WHERE c.cycleid IN (mc.cycleid1, mc.cycleid2)
                 )
GROUP BY c.userid
HAVING count(*) > 1;