假设我有:
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,从left table(main)中检索所有记录,从right table中检索其他匹配项。
select
users.userid,
h.time
from
users
left outer join hits h
on(
users.userid = h.userid
)
关于php - 如何在一个表中连接具有多行的两个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15085718/