gpt4 book ai didi

Mysql - 加入多个 ID 并连接加入的列?

转载 作者:行者123 更新时间:2023-11-29 05:40:03 25 4
gpt4 key购买 nike

不确定我的问题标题有多准确,但让我解释得更好一些。

我有两个表:artists, releases

table artist
artist_id,
artist_name

table release
release_id,
release_artist_ids,
release_name

还有更多的列名,但这些是我的问题所涉及的。

release_artist_ids 可以包含一个或多个与艺术家表相对应的艺术家 ID。如果同一 release_id 上有不止一位艺术家,那么我用逗号分隔 ID。

例如发布行:

1 -- 2,5 -- Example Release

我想做的是列出发行并加入艺术家表以获取发行中涉及的艺术家姓名。

我设法使用 IN (release.release_artist_ids) 加入,但这只会返回一个艺术家姓名。我想将所有涉及的艺术家合并到一个返回的列中,用竖线分隔,以便稍后进行格式化。

最佳答案

我建议您将数据库设计更改为 join table称为 release_artist,它模拟艺术家和发行版之间的多对多关系。此表应包含两列:release_idartist_id

如果你不能改变数据库设计,你可以使用FIND_IN_SET但它会很慢:

SELECT
release.release_id,
GROUP_CONCAT(artist.artist_name, '|') AS artist_names
FROM artist
JOIN release
ON FIND_IN_SET(artist.id, release.release_artist_ids)
GROUP BY release.release_id

关于Mysql - 加入多个 ID 并连接加入的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7458595/

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