Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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
Php 如果有超过一定数量的孩子,如何选择父母?_Php_Mysql - Fatal编程技术网

Php 如果有超过一定数量的孩子,如何选择父母?

Php 如果有超过一定数量的孩子,如何选择父母?,php,mysql,Php,Mysql,我有一张有所有父母的桌子和一张有所有孩子的桌子 子行采用父行的自动递增id号,并且它们与具有该编号的父行相关。每个孩子只有一个父母,父母可以有大约200个孩子。因此,我想在children count达到200或children count>199时选择一个父项,并列出具有children count的父项 假设在父表上:自动递增的数字列称为ID,名称称为name。在子表上:父id列称为parentID,名称称为cName 1:我如何选择并仅列出有子女的父母 2:如何仅选择和列出孩子数>199的

我有一张有所有父母的桌子和一张有所有孩子的桌子

子行采用父行的自动递增id号,并且它们与具有该编号的父行相关。每个孩子只有一个父母,父母可以有大约200个孩子。因此,我想在children count达到200或children count>199时选择一个父项,并列出具有children count的父项

假设在父表上:自动递增的数字列称为ID,名称称为name。在子表上:父id列称为parentID,名称称为cName

1:我如何选择并仅列出有子女的父母

2:如何仅选择和列出孩子数>199的家长

请解释你的代码,当你张贴你的答案,让我可以很容易地理解

编辑:以下是我尝试过的,我不知道我在这里做什么:

$sql3 = 'SELECT parentTable.ID as ParentID,
                 b.TotalCount
      FROM parentTable a INNER JOIN
             (
            SELECT parentID, COUNT(1) as TotalCount
              FROM childTable
               WHERE tID = parentID
            GROUP BY threadID
             ) b 
         ON parentTable.ID = childTable.parentID
         AND childTable.TotalCount>199';

我提出了下面这个解决方案,它不是完美的,但它现在起作用了

SELECT ID, COUNT(parentID) as total from parentTable INNER JOIN childTable ON parentTable.ID = childTable.parentID GROUP BY parentTable.ID
对于第二个问题,这里是最后一个完美的问题:

SELECT parentTable.ID, parentTable.Name, COUNT(parentID) as total from parentTable INNER JOIN childTable ON parentTable.ID = childTable.parentID GROUP BY parentTable.ID HAVING COUNT(parentID) > 199

我试了12个小时想弄明白,但我弄不明白。我会加上我的最后一次尝试,但我并没有真正理解它。@PrerakSola别这么粗鲁!如果你不帮忙的话,管好你自己的事吧。