【发布时间】:2013-05-14 02:13:54
【问题描述】:
我有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;
【问题讨论】:
标签: mysql sql inner-join jointable