![]() |
|
Модераторы: skyboy |
![]()
|
|
| linuxoid |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 17.4.2005 Репутация: нет Всего: нет |
Здравствуйте, коллеги.
Я работаю на Postgres. Задача такая: Есть таблица складов, в которой (к примеру) такие записи: id=1; name=sklad1 id=2. name=sklad2 На каждом складе есть продукты. Это отражено в таблице складские-продукты. К примеру такие записи (типа продуктов всего 2): id=1; sklad_id=1; type=A; name=produkt1 id=2; sklad_id=1; type=B; name=produkt2 id=3; sklad_id=2; type=A; name=produkt3 ... Как мне выбрать все склады на которых есть только продукты типа А (A и B не подходят). Или как выбрать склады, на которых есть обязательно и А и B. Или склады, на которых только B продукт. Т.е. главное условие при этом, что я должен одним запросом получить id всех таких складов. Благодарю. P.S. На данный момент я это делаю так: SELECT count(*) FROM (SELECT id FROM(SELECT sklad.id, products.type FROM sklad JOIN products ON (sklad.id = products.sklad_id) GROUP BY sklad.id, products.type) AS innerquery GROUP BY id HAVING count(id) > 1) AS innerquery; * В данном запросе я узнаю, на каких складах более 1 типа продуктов. Тогда можно сделать вывод, что на этом складе будут A и B. Но думаю, что есть авриант получше, поэтому српашиваю. Это сообщение отредактировал(а) linuxoid - 17.5.2011, 17:21 |
|||
|
||||
| Zloxa |
|
||||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
Это сообщение отредактировал(а) Zloxa - 17.5.2011, 17:23 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
||||
|
|||||
| linuxoid |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 17.4.2005 Репутация: нет Всего: нет |
Благодарю вас, месье!! Работает, как часы. Я угробил пол дня на самостоятельный поиск... так что большое спасибо!
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |