我想显示数据库表中的 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/