Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL联接父记录和子记录并获取父记录和子记录的计数_Mysql_Sql_Join - Fatal编程技术网

Mysql SQL联接父记录和子记录并获取父记录和子记录的计数

Mysql SQL联接父记录和子记录并获取父记录和子记录的计数,mysql,sql,join,Mysql,Sql,Join,我有这个问题,这让我很难找出问题所在,谢谢你的建议 SELECT cooperatives.island, cooperatives.id, COUNT( CASE WHEN members.gender = 'Male' THEN 1 ELSE NULL END ) AS males, COUNT( CASE WHEN members.gender = 'Female' THEN 1 ELSE NULL END ) AS females, COUNT(

我有这个问题,这让我很难找出问题所在,谢谢你的建议

 SELECT
  cooperatives.island, cooperatives.id,
  COUNT(
    CASE WHEN members.gender = 'Male' THEN 1 ELSE NULL END
  ) AS males,
  COUNT(
    CASE WHEN members.gender = 'Female' THEN 1 ELSE NULL END
  ) AS females,
  COUNT(members.gender) AS genderall
FROM
  cooperatives
JOIN members ON cooperatives.id= members.c_id
WHERE
  1 = 1 
GROUP BY
  cooperatives.island
我想做的就是得到这样的结果

这是可行的,但我需要添加的是另一个专栏,其中将显示每个岛屿的一些合作社。

我想您想要:

SELECT c.island, COUNT(DISTINCT c.id) as num_cooperatives,
       SUM(m.gender = 'Male') AS males,
       SUM(m.gender = 'Female') AS females,
       COUNT(m.gender) AS genderall
FROM cooperatives c JOIN
     members m
     ON c.id = m.c_id
GROUP BY c.island;
我怀疑你想要:

SELECT c.island, COUNT(DISTINCT c.id) as num_cooperatives,
       SUM(m.gender = 'Male') AS males,
       SUM(m.gender = 'Female') AS females,
       COUNT(m.gender) AS genderall
FROM cooperatives c JOIN
     members m
     ON c.id = m.c_id
GROUP BY c.island;

当您在计数时使用case,则不要使用else语句。当您在计数时使用case,则不要使用else语句。