假设我有:

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
    )

10-05 20:16
查看更多