首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP MySQL:如何从MySQL表中检索与项目id相关联的所有图像

PHP MySQL:如何从MySQL表中检索与项目id相关联的所有图像
EN

Stack Overflow用户
提问于 2018-08-09 05:23:31
回答 1查看 95关注 0票数 0

所以我有两张桌子。

项目表:

代码语言:javascript
复制
+---------+-----------+
| item_id | item_name |
+---------+-----------+
|       1 | Item One  |
|       2 | Item Two  |
+---------+-----------+

图像表格:

代码语言:javascript
复制
+---------+----------------------+
| item_id |      item_image      |
+---------+----------------------+
|       1 | clofr9ohuvex5cxeyrfm |
|       1 | slnorjbqfd2x7ks0marp |
|       1 | oomkjtomvasklx9be4sq |
|       2 | um8donrpeuvfrmqb7qt  |
|       2 | lowcvoaijxniiqdj5eoe |
|       2 | qwxfartcsdyusw4lrngi |
+---------+----------------------+

我的php代码,用于获取项目列表及其关联图像:

代码语言:javascript
复制
$itemsQuery = $db->prepare("
        SELECT *
        FROM items a,item_images b
        WHERE a.item_id = b.item_id
    ");
    $itemsQuery->execute();
    $items = $itemsQuery->fetchAll(PDO::FETCH_ASSOC);

    var_dump($items);

我得到了6个结果而不是2个。

我想要的是显示"items表“中的2个项目,以及它们在基于item_id的"images表”中的关联图像。

我可以查询"items table“并遍历它,再次查询数据库以获得图像。但是我如何在一个数据库调用中做到这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-09 05:32:43

您可以使用GROUP_CONCAT让MySQL为您将第二个表中的所有值分组到单个列中:

代码语言:javascript
复制
SELECT 
    a.*, GROUP_CONCAT(b.item_image) AS item_images
FROM
    items a,item_images b
WHERE
    a.item_id = b.item_id
GROUP BY
    a.item_id

结果将是一个名为item_images键,它包含item的每个item_image,并以,分隔

代码语言:javascript
复制
um8donrpeuvfrmqb7qt,lowcvoaijxniiqdj5eoe,qwxfartcsdyusw4lrngi

然后,如果您希望将其作为数组使用,则可以在PHP端使用explode

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51755833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档