假设我有:
USERS:
userid | name
1 | John
2 | Jack
HITS:
id | userid | time
1 | 1 | 50
2 | 1 | 51
3 | 2 | 52
4 | 1 | 53
5 | 2 | 54
6 | 2 | 55
我需要一个这样的结构:
array() {
[user 1] {
hit 1 => 50
hit 2 => 51
hit 4 => 53
}
[user 2] {
hit 3 => 52
hit 5 => 54
hit 6 => 55
}
}
最糟糕的方法是:
选择*用户
为每个用户选择所有点击
有没有一种方法可以将结果作为一个单独的查询获得,而不必像这样遍历每个查询?
最佳答案
使用left outer join,从左表(main)检索所有记录,并从右表检索其他匹配的记录。
select
users.userid,
h.time
from
users
left outer join hits h
on(
users.userid = h.userid
)