首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:从另一个表中按行数排序?

MySQL:从另一个表中按行数排序?
EN

Stack Overflow用户
提问于 2011-07-19 20:17:46
回答 3查看 1.1K关注 0票数 0
代码语言:javascript
复制
SELECT e.*,
(
    SELECT COUNT(*) FROM
    (
        SELECT tm.exerciseID FROM exercise_targetedmuscles tm
        WHERE tm.exerciseID = e.exerciseID
        AND tm.isPrimary = 1
        AND tm.targetedMuscleID IN (4,11)
    ) as musclesCovered
) as numMusclesCovered
FROM exercises e
ORDER BY numMusclesCovered DESC

基本上,我想按它们覆盖的目标肌肉的数量来排序(在这个例子中,目标肌肉是4和11)。但是,子查询(出于某种原因?)不知道E是什么,所以它不起作用。

对于如何让这个查询正确地排序我的结果,有什么想法吗?谢谢!

编辑:是在兰迪的有益评论之后提出来的。

代码语言:javascript
复制
SELECT COUNT(tm.targetedMuscleID) as numMusclesCovered, e.*, tm.* FROM exercise_targetedmuscles tm

JOIN exercises e ON tm.exerciseID = e.exerciseID

WHERE tm.isPrimary = 1
AND tm.targetedMuscleID IN (4,11)

GROUP BY tm.exerciseID

ORDER BY numMusclesCovered DESC

太感谢了!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-19 20:33:26

了解表的结构可能会有所帮助。我建议了一个类似于此的解决方案。

代码语言:javascript
复制
SELECT e.*, tm.*, COUNT(tm.targetedMuscleID) AS coveredMuscles
FROM exercises AS e
JOIN exercise_targetedmuscles AS tm ON tm.exerciseID = e.exerciseID
WHERE tm.isPrimary = 1 AND tm.targetedMuscleID IN (4, 11)
GROUP BY e.exerciseID
ORDER BY coveredMuscles;
票数 0
EN

Stack Overflow用户

发布于 2011-07-19 20:24:43

MySQL中的SQL子查询具有类似于“本地命名空间”的内容。我没有能力测试,但你可能在寻找这样的东西:

代码语言:javascript
复制
SELECT `data`.* FROM (
   SELECT COUNT(tm.targetedMuscleID) as `count`,tm.targetedMuscleID FROM exercise_targetedmuscles tm
   LEFT JOIN `exercises` as `e` ON (`tm`.`exerciseID`=`e`.`exerciseID`)
   WHERE
       tm.isPrimary = 1
   AND
       tm.targetedMuscleID IN (4,11)
   GROUP BY tm.targetedMuscleID
) as `data`
ORDER BY `data`.`count`

但是,在某些情况下,您根本不必使用子查询。

票数 0
EN

Stack Overflow用户

发布于 2011-07-19 20:38:00

如果我正确理解,您根本不需要子查询

代码语言:javascript
复制
SELECT count(tm.targetedMuscleID) as num_muscles, e.exerciseID 
FROM exercise_targetedmuscles tm, exercises e
WHERE tm.exerciseID = e.exerciseID
AND tm.isPrimary = 1
AND tm.targetedMuscleID IN (4,11)
GROUP BY e.exerciseID
order by num_muscles
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6753541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档