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

时间:2015-08-18 09:48:23

标签: php mysql

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

子行采用父行'自动增加ID号,它们与父母的号码相关。每个孩子只有1个父母,父母可以有大约200个孩子。因此,当孩子数量达到200(或儿童数量> 199)时,我想选择父母,并列出有孩子数量的父母。

让我们在父表上说:自动增量号列被称为" ID",名称被称为"名称"。在子表上:父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';

1 个答案:

答案 0 :(得分:0)

我想出了以下解决方案,它并不完美,但它现在可以使用。

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