gpt4 book ai didi

php - 在mysql中使用select join时将数据选择为单行

转载 作者:行者123 更新时间:2023-11-29 04:07:44 24 4
gpt4 key购买 nike

当使用连接从两个表中选择数据时,如何从单行中的 mysql 查询中获取数据?

"id"    "itemId"    "itemTempId"    "itemName"                  "userId" "postId"
"1" "US1" "T001" "Samsung Galaxy Note 5" "1" "1"

"id" "itemId" "itemTempId" "itemImageName" "userId" "postId"
"1" "US1" "T001" "front.jpg" "1" "1"
"2" "US1" "T001" "side-left.jpg" "1" "1"
"3" "US1" "T001" "side-right.jpg" "1" "1"
"4" "US1" "T001" "back.jpg" "1" "1"

现在,当我像下面那样从第一个表中选择 1 行并从第二个表中选择相关行时,我得到每一行中的所有数据,当我使用 php 打印它时也会重复。

select a.itemName, b.itemImageName from amga a left join amgb b on a.userId = b.userId where a.userId = 1;

当前输出

"itemName"                  "itemImageName"
"Samsung Galaxy Note 5" "front.jpg"
"Samsung Galaxy Note 5" "side-left.jpg"
"Samsung Galaxy Note 5" "side-right.jpg"
"Samsung Galaxy Note 5" "back.jpg"

理想的输出 或一些不会重复 itemName 并且可以使用 php 轻松输出的其他变体。

"itemName"                  "itemImageName"
"Samsung Galaxy Note 5" "front.jpg","side-left.jpg","side-right.jpg","back.jpg"

在最终结果中,标题只输出一次,而图像名称需要循环遍历。像这样:

"Samsung Galaxy Note 5"
"front.jpg","side-left.jpg","side-right.jpg","back.jpg"

最佳答案

您需要使用 GROUP_CONCAT 函数进行分组。请尝试这个查询:

select a.itemName, group_concat(b.itemImageName) 
from amga a left join amgb b on a.userId = b.userId
where a.userId = 1
group by a.itemName;

关于php - 在mysql中使用select join时将数据选择为单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25418561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com