从关系数据库中获取特定值

时间:2018-02-05 20:17:21

标签: php html sql html5 codeigniter-3

嘿我想要到达的是一个单独的数组,它将所有images_links从另一个数据库中拉出来。

第一个DB:

id | text | user | date
 1 | heya |    8 |   02

第二个数据库

id | image_link | post_id |
 1 | image1.jpg |       1 |
 2 | image2.jpg |       1 |
 3 | image3.jpg |       1 |

到目前为止我的最好成绩:

| text | user | image_link | date
| heya |    8 | image1.jpg |   02
| heya |    8 | image2.jpg |   02
| heya |    8 | image3.jpg |   02

如果我的帖子只有一张图片,或者没有,结果是正确的,但是如果它有多个图像,则为每个附加图像添加1行,这就是问题

2 个答案:

答案 0 :(得分:0)

使用DISTINCT语句获取没有重复项的唯一数据

"SELECT DISTINCT image_link FROM table1 JOIN table2 ON table1.id = table2.post_id";

答案 1 :(得分:0)

如果您希望列包含所有图片,请使用GROUP_CONCAT

SELECT 
    text,
    user, 
    date, 
    GROUP_CONCAT(image_link) AS images
FROM table1 
JOIN table2 ON table1.id = table2.post_id
GROUP BY table1.id

然后在PHP端使用explode将逗号分隔的字符串转换为数组:

$images = explode(',', $row['images']);