N
NeznaJka
(классика) Есть 3 таблицы:
authors - список авторов книг
books - список книг
books_authors - таблица связи авторов с книгами
---- Таблица authors ------
---- Таблица books ------
---- Таблица связей books_authors ------
Подскажите пожалуйста, как составить запрос, чтобы для каждого автора выводился список его книг через запятую. Знаю, что нужно использовать JOIN, GROUP BY + GROUP_CONCAT, но не знаю как именно. Ни как не соображу. Я новичёк :blink:
Спасибо
Меня хватило только на:
... но выводит только book,book,book
Подскажите, люди добрые
Добавлено: Модераторам
Удалите повторяющиеся топики, я извиняюсь. При создании вылезла ошибка в вашем скрипте и я нажал кнопку обновить (сори)
authors - список авторов книг
books - список книг
books_authors - таблица связи авторов с книгами
---- Таблица authors ------
Код:
CREATE TABLE IF NOT EXISTS `authors` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`fio` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4;
INSERT INTO `authors` (`id`, `fio`) VALUES
(1, 'Николай Николаевич Носов'),
(2, 'Артур Конан Дойль'),
(3, 'Александр Сергеевич Пушкин');
Код:
CREATE TABLE IF NOT EXISTS `books` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(500) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8;
INSERT INTO `books` (`id`, `name`) VALUES
(1, 'Незнайка учится'),
(2, 'Незнайка-путешественник'),
(3, 'Винтик, Шпунтик и пылесос'),
(4, 'Затерянный мир'),
(5, 'Шерлок Холмс'),
(6, 'Руслан и Людмила'),
(7, 'Сказка о рыбаке и рыбке');
Код:
CREATE TABLE IF NOT EXISTS `books_authors` (
`id_book` int(11) NOT NULL,
`id_author` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `books_authors` (`id_book`, `id_author`) VALUES
(1, 1),
(2, 1),
(3, 1),
(4, 2),
(5, 2),
(7, 3),
(6, 3);
Спасибо
Меня хватило только на:
Код:
SELECT authors.id, authors.fio, books_authors.id_book AS books, GROUP_CONCAT('books')
FROM
authors
INNER JOIN
books_authors
ON authors.id = books_authors.id_author
GROUP BY fio
Подскажите, люди добрые
Добавлено: Модераторам
Удалите повторяющиеся топики, я извиняюсь. При создании вылезла ошибка в вашем скрипте и я нажал кнопку обновить (сори)