如何连接来自相同 Table 的数据点?

How Do I Join Data Points From The Same Table?

所以我是 MySQL 的新手。我创建了一个数据库,它是我的书 collection。它有标题、类型、卷和书籍类型(漫画、轻小说、普通小说等)。到目前为止,这是我创建数据库和添加数据的代码。

create database books;
use books;
create table books_in_my_possession (title varchar(100), genre varchar(100), volume varchar (100));
insert into books_in_my_possession (title, genre, volume) values ('Assassins Creed Blade of Shao Jun', 'Historical Fiction', '1');
insert into books_in_my_possession (title, genre, volume) values ('Assassins Creed Blade of Shao Jun', 'Historical Fiction', '2');
insert into books_in_my_possession (title, genre,volume) values ('Torture Princess: Fremd Torturchen', 'Isekai', '1');
insert into books_in_my_possession (title, genre, volume) values ('Torture Princess: Fremd Torturchen', 'Dark Fantasy', '1');
alter table books_in_my_possession
add column book_type varchar(100);
update books_in_my_possession
set book_type = 'manga' 
where title = 'Assassins Creed Blade of Shao Jun';
update books_in_my_possession
set book_type = 'light novel'
where title = 'Torture Princess: Fremd Torturchen';

我想做的是按流派组合 'Torture Princess: Fremd Torturchen' 和“1”(相同标题),因此它同时具有 'Isekai' 和 'Dark Fantasy'。我本可以在其中一条价值线中写下 'Isekai/Dark Fantasy' 或 'Isekai, Dark Fantasy',但我希望它们可以分开计算,因为书籍有多种类型。

我该怎么做?

我认为您正在尝试使用 group_concat:https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_group-concat

select  title,
        GROUP_CONCAT (genre) as genre,
        volume,
        book_type 
from books.books_in_my_possession
group by title,volume,book_type ;

演示:https://www.db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/121