我知道其他帖子都在谈论这一点,但是我还无法在这种情况下应用任何东西。
到目前为止,这就是我所拥有的。
SELECT *
FROM ccParts, ccChild, ccFamily
WHERE parGC = '26' AND
parChild = chiId AND
chiFamily = famId
ORDER BY famName, chiName
我需要做的是在结果中查看具有相同ccFamily的ccPart的总数。然后,按总数排序。
看起来这接近您想要的内容:
SELECT f.famId, f.famName, pc.parCount
FROM (
SELECT c.chiFamily AS famId, count(*) AS parCount
FROM
ccParts p
JOIN ccChild c ON p.parChild = c.chiId
WHERE p.parGC ='26'
GROUP BY c.chiFamily
) pc
JOIN ccFamily f ON f.famId = pc.famId
ORDER BY pc.parCount
内联视图(在括号之间)是头条新闻:它进行分组和计数。请注意ccFamily
,由于表ccChild
已经包含家庭信息,因此您无需将表联接到此处按家庭分组。如果您不需要姓氏(即,如果其ID足够),则可以仅使用内联视图ORDER BY count(*)
。外部查询仅将姓氏与结果相关联。
另外,MySQL提供了一种非标准机制,您可以通过该机制将外部查询与内联视图结合使用,但是在这种情况下,无论是清晰还是简洁,它都无济于事。我提供的查询应为任何SQL实现所接受,并且首先学习此类语法和方法对您有利。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句