Forum Webscript.Ru
Общие => Базы данных => Тема начата: Lirik от 31 Октября 2006, 02:41:03
-
Схема базы данных:
CREATE TABLE book (id INT, title VARCHAR(100));
CREATE TABLE writer (id INT, name VARCHAR(100));
CREATE TABLE book2writer (book_id INT, writer_id INT);
Таблицы связаны многие-ко-многим.
В результате запроса должно быть выведено название книги и количество авторов этой книги.
Задачка вроде бы простейшая и решается в два действия. Одно действие понятно - делаем выборку в третьей таблице:
SELECT book_id, COUNT( * )
FROM book2writer
GROUP BY book_id
Но как сделать, чтобы вместо book_id из таблицы book2writer отображался title из таблицы book ума не приложу. Может подскажет кто?
-
SELECT book.title, COUNT(book2writer.book_id)
FROM book, book2writer
WHERE book.id=book2writer.book_id
GROUP BY book.title
-
Огромное спасибо. А то весь день убил. Такой вариант у меня тоже был, вот только в неправильной последовательности.
-
Пожалуйста!
Очень рекомендую книгу Мартина Грубера "Understanding SQL" (есть русский перевод, не знаю точного названия).
-
Еще раз спасибо.
Книга называется "понимание SQL"
перевод скачать можно здесь:
http://www.zipsites.ru/books/ponimanie_sql/
-
Спасибо, у меня есть. :)