MySQL查询返回重复结果

时间:2016-05-01 22:53:15

标签: mysql duplicates

我的mysql查询返回重复的问题。我不知道为什么。我希望有人能够深入了解并提供建议。

我有两个表xyz1和xyz2

xyz1包含员工数据,而xyz2包含雇佣健康检查。

我想要实现的目标是,我想计算男性就业的健康检查数量。

select COUNT(*) as Num 
  FROM xyz1 
    INNER JOIN xyz2 
          ON xyz1.cid = xyz2.cid 
 WHERE xyz1.gender = 'male'

它返回重复错误。

请帮忙

1 个答案:

答案 0 :(得分:0)

如果您正在尝试查找为您想要的男性员工执行的健康检查次数

SELECT COUNT(*) AS TOTAL_HEALTH_CHECKS_FOR_MALES
  FROM XYZ1
  INNER JOIN XYZ2
    ON XYZ2.CID = XYZ1.CID
  WHERE XYZ1.GENDER = 'male'

这是你已经拥有的。

如果您正在尝试确定至少进行过一次健康检查的男性员工人数,那么查询将是

SELECT COUNT(*) AS TOTAL_MALES_WITH_HEALTH_CHECKS
  FROM XYZ1
  INNER JOIN (SELECT DISTINCT CID
                FROM XYZ2) t2
    ON t2.CID = XYZ1.CID
  WHERE XYZ1.GENDER = 'male'

并且您想知道每个男性员工有多少健康检查您想要使用

SELECT XYZ1.CID, COUNT(*) AS NUMBER_OF_HEALTH_CHECKS
  FROM XYZ1
  INNER JOIN XYZ2
    ON XYZ2.CID = XYZ1.CID
  WHERE XYZ1.GENDER = 'male'
  GROUP BY XYZ1.CID

祝你好运。