У меня есть 3 базы данных, подробности следующие.
Я хочу распечатать все столбцы в базе данных books_db, а также жанр каждой книги одновременно.
Книга может относиться к нескольким жанрам, поэтому я присвоил каждому жанру уникальный идентификатор.
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;