mysql - 如何使用 mysql GROUP_CONCAT 重复组合多行?
问题描述
我有一个规范化的数据库,我正在尝试使用 JOIN 和 GROUP_CONCAT 从多个表中返回数据。我想通过 createtime 结合图像和内容。我的问题是: GROUP_CONCAT 不工作。我通过 var_dump 尝试了很多次。结果为空
SELECT post_content.*,
GROUP_CONCAT(distinct kk_user.id) AS uid,
GROUP_CONCAT(distinct User_follow.receiver_id) AS reid,
GROUP_CONCAT(distinct kk_user.username) AS name,
GROUP_CONCAT(distinct images.createtime) AS time
FROM post_content
LEFT JOIN kk_user
ON kk_user.id = post_content.User_id
LEFT JOIN User_follow
ON User_follow.sender_id = post_content.User_id
LEFT JOIN images
ON images.image_id = post_content.User_id
LEFT JOIN images
ON images.createtime = post_content.createtime
WHERE User_follow.receiver_id = 93
GROUP BY post_content.id
ORDER BY post_content.id DESC
kk_user
+------------+------------+
| id | name |
+============+============+
| 90 | user1 |
+------------+------------+
| 91 | user2 |
+------------+------------+
| 93 | user3 |
+------------+------------+
post_content
+------------+------------+-----------+-----------+--------+--+
| id | content | User_id |creattime | |
+============+============+===========+===========+===========+
| 1 | Test123 | 93 | 2021-04-07 02:13:8 |
+------------+------------+-----------+
| 2 | Test456 | 93 | 2021-05-07 03:03:4 |
+------------+------------+-----------+
| 3 | Test789 | 91 | 2021-05-07 05:03:12 |
+------------+------------+----------+-----------+-----------+
User_follow
+------------+------------+-----------+
| follow_id | sender_id |receiver_id|
+============+============+===========+
| 23 | 91 | 1 93
+------------+------------+-----------+
| 12 | 93 | 1 91
+------------+------------+-----------+
| 46 | 90 | 1 91
+------------+------------+-----------+
images
+------------+------------+-----------+-----------+---------+--+--+
|image_id | image | sender_id | createtime |
+============+============+===========+===========+===============+
| 15 | 1574864028.png | 93 | 2021-05-07 03:03:4 |
+------------+------------+---------------------------------------+
| 16 | 889391628.png | 93 | 2021-04-07 02:13:8 |
+------------+------------+---------------------------------------+
| 17 | 462594383.png | 91 | 2021-04-07 02:13:8 |
+------------+------------+----------+-----------+----------------+
我希望我的结果看起来像:
+------+---------+--------------+----------- ----+---------------+-------------------+
| uid | content | image |reid| name | time |
+======+=========+==============+================+===============+==================+
| 93 | Test123 | 889391628.png,462594383.png | 93 | user3 | 2021-04-07 02:13:8|
+------+---------+--------------+----------------+---------------+------------------+
| 90 | Test456 | 1574864028.png | 90 | user1 | 2021-05-07 03:03:4|
+------+---------+--------------+----------------+---------------+------------------+
| 91 | Test789 | | 91 | user2 | 2021-05-07 05:03:12|
+------+---------+--------------+----------------+---------------+------------------+
如您所见,我使用简单的 GROUP_CONCAT 。我做错了什么?我必须做什么 ?
解决方案
推荐阅读
- ios - `kCGImageDestinationOptimizeColorForSharing` 有什么作用?
- python - 如何根据python 3中函数返回的数组检索字典键值对
- flutter - 从 sqflite 数据库获取所有数据的问题
- python - plt.tricontourf(x,y,z) 在数据范围之外创建颜色值
- javascript - Angular 8. 我的视图未在模型更改时更新
- spring - DirectMessageListenerContainer 是否可以与 BatchMessageListener 一起使用
- r - 当行之间的条数不同时,将字符串拆分为三列
- python - python中数独的回溯算法
- iframe - 如何更改 `iframe-resizer` 正在使用的选项?
- c++ - 如何在双链列表中创建新项目?