Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подмножество
 
 автор: Vitaly   (21.08.2006 в 14:18)   письмо автору
 
 

Помогите, пожалуйста, с запросом.
В общем суть такая, есть таблицы

table categ
cat_id (INT 20)
prod_id (INT 20)


table products
prod_id (INT 20)
prod_presence (INT 20)


необходимо получить cat_id (идентификаторы категории товара), где все продукты данной категории отсутствуют на складе - за это отвечает поле prod_presence, которое может принимать всего два значения - 'y' (присутствует на складе) и 'n' (отсутствует на складе). cat_id и prod_id - не ключевые поля, для одного cat_id может быть множество записей в таблице categ.

Вот сижу и мучаюсь. Пробовал составлять запрос как-то так:
SELECT cat_id
FROM categ
HAVING prod_id IN (SELECT prod_id
FROM products
WHERE prod_presence = 'n')

Получаю списки категорий в которых хоть где-то присутствует любой продукт, отсутствующий на складе. Проблема в том, что один и тот же продукт может находиться в разных категориях. В общем как можно выяснить, что одно подмножество полностью находится в другом множестве? Подскажите, пожалуйста, или бросьте в меня маном... Спасибо!

   
 
 автор: Trianon   (21.08.2006 в 15:43)   письмо автору
 
   для: Vitaly   (21.08.2006 в 14:18)
 


SELECT DISTINCT cat_id FROM categ LEFT JOIN 
  (SELECT cat_id FROM categ JOIN products 
   ON  categ.prod_id=products.prod_id WHERE prod_presence = 'y') AS present
ON categ.cat_id=present.cat_id WHERE present.cat_id IS NULL

   
 
 автор: Vitaly   (21.08.2006 в 20:08)   письмо автору
 
   для: Trianon   (21.08.2006 в 15:43)
 

Большое спасибо! Разобрался...
Мда, ухожу в автомеханики! (-: Еще раз спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования