gpt4 book ai didi

mysql - SQL GROUP_CONCAT 查询帮助

转载 作者:行者123 更新时间:2023-11-29 15:38:10 25 4
gpt4 key购买 nike

我在确定 GROUP_CONCAT 的最佳用途时遇到一些问题。在下面的查询中,我尝试从 JAM_Plot_Images 中选择多个图像,并将它们设置为针对单个记录。所以获取记录1,每行显示image1.jpg,image2.jpg。然后获取记录2,在第2行显示image3.jpg、image4.jpg,依此类推。

SELECT *, GROUP_CONCAT(JAM_Plot_Images.image ORDER BY JAM_Plot_Images.image) AS images
FROM JAM_Plots
LEFT JOIN JAM_Plot_Images ON JAM_Plots.page_id = JAM_Plot_Images.page_id
GROUP BY JAM_Plots.page_id

我遇到的问题是,如果一行中没有图像,则在输出记录时会破坏唯一标识符,但仅限于该记录。因此,如果记录 1、2 和 4 有图像,它将输出一切正常,但如果记录 3 没有图像,则不会出现唯一 ID。 NULL 值出现在 phpmyadmin 输出中。我尝试使用 COALESCE 来解决该问题,但无法完全正常工作。

最佳答案

此问题与 GROUP_CONCAT() 无关,这是当表之间存在重复列名时 LEFT JOIN 的常见问题。

由于两个表中的列名 page_id 相同,因此它们都将在结果中被选中。但当没有图像时,JAM_Plot_Images.page_id 将为 NULL

为了消除它们的歧义,您应该为 JAM_Plots.page_id 提供一个别名,并使用它。

SELECT *, JAM_Plots.page_id AS jp_page_id, GROUP_CONCAT(...)
...

关于mysql - SQL GROUP_CONCAT 查询帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58006493/

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