gpt4 book ai didi

php - 使用 2 个表合并具有相同 id 的 mysql 行

转载 作者:可可西里 更新时间:2023-11-01 08:39:41 25 4
gpt4 key购买 nike

我有一个包含 2 个表的 mysql 数据库:songideen、kommentare。在“songideen”中您可以存储歌曲,在“kommentare”中您可以评论它们。两个表都通过 LEFT JOIN 链接。如何合并行(如果一首歌有 2 条或更多条评论),以便所有评论在一行中用“,”分隔?在此示例中,我想合并第二行和第三行:

Name   Arbeitstitel    Datum      mp3    ID  Kommentare    KommentarID
Lukas Titeltest 2016-06-06 Link 1 comment 1
Jannik Titeltest2 2016-07-06 Link2 2 comment2 2
Jannik Titeltest2 2016-07-06 Link2 2 comment3 2
Andi Titeltest3 2016-07-20 Link3 3 comment4 3

我已经尝试过这种方式,但它不起作用:

 $sql = "SELECT songideen.Name, songideen.Arbeitstitel, songideen.Datum, songideen.mp3, songideen.ID, GROUP_CONCAT(kommentare.Kommentar SEPARATOR ',') AS KommentarIDs, kommentare.KommentarID
FROM songideen
LEFT JOIN kommentare
ON songideen.ID=kommentare.KommentarID
GROUP BY kommentare.KommentarID";

最佳答案

您需要按 songideen.ID 分组。由于songideen表中有记录,kommentare表中没有任何注释。

SELECT
songideen.Name,
songideen.Arbeitstitel,
songideen.Datum,
songideen.mp3,
songideen.ID,
GROUP_CONCAT(kommentare.Kommentar SEPARATOR ',') AS KommentarIDs,
kommentare.KommentarID
FROM songideen
LEFT JOIN kommentare ON songideen.ID = kommentare.KommentarID
GROUP BY songideen.ID ;

注意:

在您的情况下,您通过 kommentare.kommentarID 对结果集进行了分组。对于 songideen 表中的记录,如果 kommentare 表中没有任何注释,将导致 kommentare.kommentarID< 的 NULL。因此,您的最终结果集将包含那些在 kommentare 表中具有相应注释的记录,以及在 kommentare 中找到的所有 NULL 条目的一个条目表。

关于php - 使用 2 个表合并具有相同 id 的 mysql 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38540174/

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