【问题标题】:How Do I Join Data Points From The Same Table?如何连接来自同一个表的数据点?
【发布时间】:2021-12-06 12:15:27
【问题描述】:

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

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”,但我希望它们被视为独立的,因为书籍有多种类型。

我该怎么做呢?

【问题讨论】:

    标签: mysql join command-line mysql-workbench


    【解决方案1】:

    我认为您正在尝试使用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

    【讨论】:

    • 嘿,这行得通。谢谢你。但是,感觉就像我每次使用数据库时都必须输入这个。我怎样才能让它永久化?
    • @Iftiar Rana 你可以创建一个视图
    猜你喜欢
    • 1970-01-01
    • 2021-12-03
    • 2019-03-09
    • 1970-01-01
    • 2014-10-05
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多