【问题标题】: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