gpt4 book ai didi

mysql - 将sql中的多对多关系显示为SELECT中的列表

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

我有一些看起来像这样的表格:

CREATE TABLE Games (
Id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
Title VARCHAR(100) NOT NULL
);

CREATE TABLE Tags(
Id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
Tag VARCHAR(30) NOT NULL
);

CREATE TABLE GamesTags(
GameId INTEGER NOT NULL,
TagId INTEGER NOT NULL,
PRIMARY KEY (GameId, TagId),
FOREIGN KEY(GameId) REFERENCES Games(Id),
FOREIGN KEY(TagId) REFERENCES Tags(Id)
);

如何创建一个 SELECT 查询,该查询可以在一列中输出游戏标题,并在另一列中输出以逗号分隔的所有标签。示例:

Title       | Tags                |
-----------------------------------
Fortnite | survival, action |
Super Mario | platform, adventure |

最佳答案

SELECT 
A.Title,
GROUP_CONCAT(DISTINCT C.Tag ORDER BY C.Tag ASC SEPARATOR ',') Tags
FROM Games A
LEFT JOIN GameTags B
ON A.Id=B.GameID
LEFT JOIN Tags C
ON B.TagId=C.Id
GROUP BY A.Title;

有关见解,请参阅:

MySQL Group By

MySQL Join Made Easy For Beginners

MySQL GROUP_CONCAT Function

关于mysql - 将sql中的多对多关系显示为SELECT中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50844381/

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