【问题标题】:Can I sort results of SQL query by the number of records in another table?我可以按另一个表中的记录数对 SQL 查询的结果进行排序吗?
【发布时间】:2025-12-07 16:30:01
【问题描述】:

类似这样的:

SELECT count(Answers.ID) as answertotal, Questions.* 
FROM Questions 
LEFT JOIN Answers ON Answers.qid=Questions.ID 
ORDER BY answertotal

我正在使用 SQLite,但任何示例都应该有所帮助。

【问题讨论】:

  • 您当前的查询有什么问题?

标签: php sql database sqlite


【解决方案1】:

在 MySQL 中,这会起作用:

SELECT count(Answers.ID) as answertotal, Questions.* 
FROM Questions 
LEFT JOIN Answers ON Answers.qid=Questions.ID 
GROUP BY Questions.ID
ORDER BY answertotal

在 SQLLite 中,您可能需要像这样添加一个额外的层:

SELECT q.*, tots.answertotal
FROM Questions q
INNER JOIN ( 
  SELECT count(Answers.ID) as answertotal, Questions.ID as questionid
  FROM Questions 
  LEFT JOIN Answers ON Answers.qid=Questions.ID 
  GROUP BY Questions.ID
) tots ON tots.questionid = q.ID
ORDER BY tots.answertotal

【讨论】:

    最近更新 更多