Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Простенькая выборка из двух таблиц. Подскажите затупил))
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Простенькая выборка из двух таблиц. Подскажите затупил))

Страниц (1): [1]
 

1. kuteikin - 02 Февраля, 2012 - 16:57:55 - перейти к сообщению
Есть 2 таблицы.
Одна содержит фамилии авторов книг
CREATE TABLE `autor` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

Вторая содержит написанные ими произведения
CREATE TABLE `book` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_autor` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

Соответственно связаны таблицы через id_autor

Нужно сделать выборку из таблицы `autor` только тех авторов у которых 2 или более книг занесены в таблицу `book` и тех авторов чье книги вообще не упоминаются в таблице `book`?

Заранее всем спасибо!
2. Мелкий - 02 Февраля, 2012 - 17:35:00 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT autor.* FROM autor JOIN book ON autor.id=id_autor GROUP BY id_autor HAVING count(0)>=2

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM autor LEFT JOIN book ON autor.id=id_autor WHERE book.id IS NULL


PS: что будете делать с совместными произведениями нескольких авторов?
3. kuteikin - 02 Февраля, 2012 - 21:56:57 - перейти к сообщению
Спасибо.

Мелкий пишет:
PS: что будете делать с совместными произведениями нескольких авторов?

Хм... интересное условие! Подумаю.

Просто данную задачу я с терском провалил на собеседовании.
Кстати человек, который меня собеседовал намекал на возможность сделать выборку одним запросом? Возможно ли такое?
4. illy - 02 Февраля, 2012 - 22:32:02 - перейти к сообщению
kuteikin пишет:
возможность сделать выборку одним запросом? Возможно ли такое?

Нет ничего невозможного Хорошо

 

Powered by ExBB FM 1.0 RC1