Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2011, 23:36   #1
BloodA
 
Регистрация: 07.09.2008
Сообщений: 9
По умолчанию Сложный запрос не могу объяснить кратко.

Все доброго времени суток, я делаю базу с описанием характеристик товаров и тут возникла проблема.

есть таблицы
items с полями id(int), made_by(varchar), model(varchar), color(varchar)
cases с полями id(int), key(varchar), name(varchar)
cases_on_item с полями item_id(int), case_id(int)

это сделано потому, что корпус товара может иметь сразу несколько типов.
так например строка в таблице items:
0, nokia, e7, silver
1, nokia, 6700, silver

строки в таблице cases:
0, monoblock, Моноблок
1, slider, Слайдер
2, qwety, QWERTY-клавиатура

строка в таблице cases_on_item
0, 0
0, 1


возникает вопрос как сформировать запрос так чтобы получить товар у которого корпус отвечает допустим сразу всем требования...
т.е. наприме выбрать телефон у которого корпус слайдер с qwerty клавиатуро и отсеять те которые являются слайдерами без qwerty
BloodA вне форума Ответить с цитированием
Старый 21.08.2011, 23:55   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Если не начудил, то можно так попробовать
Код:
SELECT I.*
  FROM items I
  WHERE 
    EXISTS(SELECT * 
      FROM cases_on_item S, cases C
      WHERE C.key='slider' AND C.id=S.case_id AND S.item_id=I.id) AND
    EXISTS(SELECT * 
      FROM cases_on_item S, cases C
      WHERE C.key='qwety' AND C.id=S.case_id AND S.item_id=I.id)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сложный запрос Deeller БД в Delphi 3 29.04.2011 19:25
Сложный запрос templton Microsoft Office Access 8 21.04.2011 13:43
Сложный запрос Kostya777 Microsoft Office Access 1 07.12.2010 12:02
Сложный запрос nikolai_P SQL, базы данных 2 01.04.2010 01:21
Сложный запрос Lianchik Помощь студентам 1 01.03.2010 17:16