gpt4 book ai didi

php - MySQL查询从A中选择行并组合B中的多行

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

经过研究后,显然这是一件复杂的事情?它看起来不像是一个枢轴查询,或者应该是?无论如何,有两个这样的表:

文章:

id    col2    col3
1 .... ....
2 .... ....
3 .... ....

文章图片:

id    imgFile    artRef
1 img1.jpg 1
2 img2.jpg 1
3 img3.jpg 2
4 ....... 3
5 ....... 3
6 ....... 3

我想选择“articles”中的所有内容并将“articleImages”合并到行中,因此它看起来像这样:

[{
"id":"1",
"col2":"...",
"col3":"...",
"imgFiles":{
"img1.jpg",
"img2.jpg"
}
},{
"id":"2",
"col2":"...",
"col3":"...",
"imgFiles":{
"img3.jpg"
}
},{
"id":"3",
...etc.
}]

我尝试过:

"SELECT art.*, ai.imgFile FROM articles art LEFT JOIN articleImages ai ON art.id = ai.artRef ORDER BY art.id desc LIMIT $lim, $limit"

这是错误的......我为每个图像都有单独的行。这不是LEFT JOIN...它的语法是什么?或者有更优化的组织表格的方式吗?我不想创建一个“articleImages”列并在“articles”内连接...

最佳答案

如果我正确地实现了您的目标,您可以对查询进行分组并使用 GROUP_CONCAT 函数在一个字段中获取所有逗号分隔的 img 名称:

SELECT art.*, 
GROUP_CONCAT(ai.imgFile) imgFiles
FROM articles art
LEFT JOIN articleImages ai
ON art.id = ai.artRef
GROUP BY art.id
ORDER BY art.id desc
LIMIT $lim, $limit

关于php - MySQL查询从A中选择行并组合B中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30329546/

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