我知道其他帖子谈论这个,但我还没有能够应用这种情况。
这是我到目前为止所做的。
SELECT *
FROM ccParts, ccChild, ccFamily
WHERE parGC = '26' AND
parChild = chiId AND
chiFamily = famId
ORDER BY famName, chiName
我需要做的是查看结果中具有相同ccFamily的ccPart总数。然后,按总数排序。
答案 0 :(得分:1)
在SELECT
中,添加count(ccParts) as count
然后添加ORDER BY count
之类的内容?不确定你的表的结构,所以你可能需要即兴发挥。
答案 1 :(得分:1)
看起来这很接近你想要的东西:
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实现接受,并且首先要学习这样的语法和方法对你有利。