php - 如何在一个表中连接具有多行的两个表?

标签 php mysql sql

假设我有:

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
  }
}

最糟糕的方法是:

  1. 选择*个用户
  2. 为每个用户选择所有命中

有没有一种方法可以将结果作为一个查询来获取,而无需像这样逐个查询?

最佳答案

使用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/

相关文章:

php - 将带有 MySQL 数据库的 PHP 程序转换为 .exe 文件

php - php 中与 adodb 连接时出错

php - 如何选取最近的10条记录

mysql - SQL 自连接空值

php - SQL查询: Grouping by an ntext field

php - 正则表达式获取括号内的文本

php - mongodb和php : connection pooling

mysql - 对 "ORDER BY"查询的顺序进行排序

php - 使用PHP将Json数据传输到MySQL

php - 我如何在mysql中创建案例,仅在空时更新字段,如果不空,则转到下一个字段?