php - 与 PHP 和 MySQL 建立一对多关系的分页

标签 php mysql database pagination one-to-many

我想显示数据库表中的 6 条记录。 2个表之间存在一对多关系。使用自定义映射器,我按如下方式映射这些记录。

$result  = [
   0=>[
        "name"=>"jithin",
        "phone"=>"907856",
        "messages"=>[
                      0=>[
                          "title"=>"text messgae"
                         ],
                      1=>[
                          "title"=>"Data messgae"
                         ]
                    ]
      ],
    1=>[
        "name"=>"Rijin",
        "phone"=>"90247856",
        "messages"=>[
                      0=>[
                          "title"=>"text messgae"
                         ],
                      1=>[
                          "title"=>"Data messgae"
                         ]
                    ]
      ]
]

查询

"SELECT u.* , m.* FROM user u INNER JOIN messages m ON m.userId = u.id
 WHERE m.date BETWEEN "12-12-2015" AND "12-12-2018" LIMIT 0, 6; 

此查询将返回类似的数据

userId | name | messages|
-------|------|---------|
1      |jithin| hai     |
1      |jithin| hello   |
1      |jithin| Why?    |
2      |Rijin | hai     |
2      |Rijin | Where   |
2      |Rijin | Why?    |
------------------------- 

但是我还需要另外 4 个人的另外 4 条记录。 我使用的是php和mysql5.7。

最佳答案

如果我了解您的需求:

    SELECT u.id, u.userName , m.message
    FROM user u 
    INNER JOIN messages m ON m.userId = u.id
    INNER JOIN (SELECT u.id as user_id FROM user u LIMIT 0, 6) as users
        ON users.user_id = u.id
    WHERE m.date BETWEEN '12-12-2015' AND '12-12-2018';

关于php - 与 PHP 和 MySQL 建立一对多关系的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51089947/

相关文章:

mysql - 根据出生日期计算年龄并返回20岁到30岁之间的行

php - 检查具有多个输入的数据库表

php - 聚集活跃的访客;在数据库中为每个访问者分配一个唯一的用户行

php - 如何使用 PHP 和 MySQL 一次从单个表单插入多个值

javascript - 为什么 AJAX 调用不仅仅在 iOS 上工作,在其他地方都工作得很好?

php - 在点击功能 joomla 上为文章添加 1 次点击

php - 使用 HTML 表单将 Smarty 变量传递给 php 文件。

mysql - 对同一张表使用左连接还是有更好的方法?

php - MySql 和 PDO : How to send a null param with bindParam()

database - 从数据层填充域模型,还是直接查询数据库?