gpt4 book ai didi

mysql - 创建临时表 CONCAT GROUPS 被放置到它们自己的列中?

转载 作者:行者123 更新时间:2023-11-30 23:37:23 26 4
gpt4 key购买 nike

我是一个 MYsql 新手,我不知道如何做到这一点。我想我必须将我的结果插入到一个临时表中,但我不确定。

我想从我的数据库中输出一份报告,显示我收藏中的每张音乐专辑(专辑 1、专辑 2、专辑 3),并为专辑可用的每种格式(WAV、CD、盒式磁带、 ETC)。我不确定如何采用 format_types 和专辑之间的多对一关系并输出报告,其中每种格式都有一列,而每个专辑只有一行。

我有三个表(专辑、格式类型和出现次数)

albums id      uuid1       d2ec45e9-5fcc2       949ebf32-8c953       98c7cc7e-ebe4
format_typesid  name1   cassette2   CD3   DAT4   WAV
album_occurrencesid  album_id format_type_id1   1        12   2        23   3        34   2        35   3        16   1        27   1        38   1        49   2        4

我想要的结果是:

albums_by_formatalbum_id    format_name_1   format_name_2   format_name_3   format_name_41           Cassette        CD              DAT             WAV2           NULL            CD              NULL            WAV3           Cassette        NULL            DAT             NULL

我想知道返回上述结果的最佳方法是什么?

最佳答案

下面应该给你你所需要的。我说“应该”是因为我还没有测试过。

SELECT `al`.`id`,
(
SELECT `ft`.`name`
FROM `format_types` `ft`
INNER JOIN `album_occurrences` `ao` ON `ft`.`id` = `ao`.`format_type_id`
WHERE `ao`.`album_id` = `al`.`id`
AND `ft`.`id` = 1
) `format_name_1`,
(
SELECT `ft`.`name`
FROM `format_types` `ft`
INNER JOIN `album_occurrences` `ao` ON `ft`.`id` = `ao`.`format_type_id`
WHERE `ao`.`album_id` = `al`.`id`
AND `ft`.`id` = 2
) `format_name_2`,
(
SELECT `ft`.`name`
FROM `format_types` `ft`
INNER JOIN `album_occurrences` `ao` ON `ft`.`id` = `ao`.`format_type_id`
WHERE `ao`.`album_id` = `al`.`id`
AND `ft`.`id` = 3
) `format_name_3`,
(
SELECT `ft`.`name`
FROM `format_types` `ft`
INNER JOIN `album_occurrences` `ao` ON `ft`.`id` = `ao`.`format_type_id`
WHERE `ao`.`album_id` = `al`.`id`
AND `ft`.`id` = 4
) `format_name_4`
FROM
`albums` `al`;

让我知道它是否有效:-)

关于mysql - 创建临时表 CONCAT GROUPS 被放置到它们自己的列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6375410/

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