【发布时间】:2012-07-16 13:07:29
【问题描述】:
我的表结构如下:
users:
id PK
username
email
salt
password
date_created
questions:
id PK
user_id FK(users)
title
date_created
date_updated
answers:
id PK
question_id FK(questions)
user_id FK(users)
body
date_created
所以我需要一个查询来从这些表中获取数据并显示用户的最后 5 个问题以及每个问题的前 3 个答案。像这样的:
"What is my favorite color? posted by user
red - posted by user1
green - posted by user2
yellow - posted by user3
.....
"
这就是我的目标。如何在 1 个查询中执行此操作?我应该使用 group concat 对 1 个问题的多个答案进行分组吗?或者我应该得到结果并在 PHP 中解析数组以按 question_id 对答案进行分组。我也需要这个查询非常快。我不确定进行 1 次查询或进行多次查询是否会更快获得用户问题,然后问题得到答案。
【问题讨论】:
-
使用
homework标签发布。勇敢——值得称赞! -
使用选择 - 排序 - 限制。见stackoverflow.com/questions/11486777/… 的想法
-
相同的样本数据(首选 sqlfiddle)
标签: php mysql sql query-performance