我需要进行一个查询来获取所有用户的问题,并且对于每个问题,从数据库中获取 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
但这还没有完成,也不能很好地工作。