我有一张包含所有父母的桌子和一张包含所有孩子的桌子。
子行采用父行'自动增加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';
答案 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