我有3个数据库,详情如下。
我希望同时打印 books_db 数据库中的所有列以及每本书的类型。
一本书可以分为多种类型,因此我为每种类型都赋予了唯一的 ID。
Genre_ID 1 - 惊悚片,Genre_ID 2 - 冒险片等。
--- books_db -----------
ID (int AI)
Book_title (varchar)
Author (varchar)
--- genre_link_db ------
ID_Books (int)
Genre_ID (int)
--- genre_db -----------
Genre_ID (int)
Genre (varchar)
到目前为止,我已经成功地编写了这个 SQL 语句。它有效,但仅适用于第一个搜索结果,因为组 concat() 会将所有流派连接在一起,并且不会为下一个搜索结果打印新行。
例如下面,如果我尝试像 '%' ,它应该显示所有结果,它只显示 1 个结果,其类型正确打印。
SELECT *, group_concat(T2.Genre separator ', ') AS GENRE_RESULT
FROM (SELECT * FROM books_db WHERE Book_title like '%') AS T1
JOIN (SELECT ID_Books, Genre from genre_link_db INNER JOIN genre_db ON genre_link_db.Genre_ID = genre_db.Genre_ID ) AS T2
ON T1.ID = T2.ID_Books;