我需要进行一个查询来获取所有用户的问题,并且对于每个问题,从数据库中获取 3 个答案。此查询需要尽可能高效。
我有桌子:
questions:
id
user_id
title
date_created
date_updated
answers:
id
question_id
user_id
body
date_created
我可以在 1 个查询中完成吗?基本上我需要显示问题,与用户表连接以获取用户名,显示问题的 3 个答案并为每个答案显示发布者的用户名。
我的做法是这样的:
SELECT questions.*, GROUP_CONCAT(answers.id) as answers
FROM (questions)
JOIN users ON users.id = questions.user_id
LEFT JOIN answers ON answers.question_id = questions.id
WHERE questions.user_id = '1'
GROUP BY questions.id
ORDER BY questions.date_updated desc
LIMIT 3
但这还没有完成,也不能很好地工作。