Помогите, пожалуйста, составить запрос

Тема в разделе "SQL", создана пользователем nicecoder, 19 июн 2010.

  1. nicecoder

    nicecoder Гость

    Добрый день.
    Помогите, пожалуйста, составить запрос.
    Есть база для каталога автомобилей. В ней имеется 3 таблицы:
    options, complitions и options_complitions.
    В первой храняться опции комплектаций (например, "Гидроусилитель руля", "ABS", etc...), во второй - названия комплектаций автомобилей, к которым опции принадлежат, а в третьей - храняться id-шники первой и второй таблицы для осуществления связей между ними.
    И нужно составить запрос, чтобы выбрать из 3-ей таблицы все id-шники комплектаций (complition_id), каждая из которых должна иметь заданный список опций. Т.е. нужно вывести из таблицы options_complitions поле complition_id, указав в запросе список из option_id.
    Например, если бы я хотел вывести список комплектаций, у которых встречаются опции с id-шником 3, 7, и 5, то было бы все просто:
    Код (Text):
    SELECT complition_id FROM options_complitions WHERE option_id = 3 OR option_id = 7 OR option_id = 5
    А вся проблема в том что мне нужно вывести комплектации, у которых эти опции не просто встречаются по одной, а присутствуют все сразу. Т.е. список комплектаций, у каждой из которых есть опции и 3 и 7 и 5. Я думал что это как-то с помощью подзапросов делается, но у меня все равно ничего не выходит.Помогите, пожалуйста, разобраться - я уже 2 дня с этим мучаюсь. Заранее спасибо за ответы. Сами таблицы выглядят следующим образом:
    Код (Text):
    options:
    CREATE TABLE `options` (
    `id` int(5) NOT NULL auto_increment,
    `name` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM;

    complitions:
    CREATE TABLE IF NOT EXISTS `complitions` (
    `id` int(5) NOT NULL auto_increment,
    `title` varchar(255) NOT NULL,
    `price` int(8) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM;

    options_complitions:
    CREATE TABLE `options_complitions` (
    `option_id` int(5) NOT NULL,
    `complition_id` int(5) NOT NULL,
    ) ENGINE=MyISAM;
     
  2. petrushka

    petrushka Гость

    а если AND поставить...не поможет разве??
     
Загрузка...
Похожие Темы - Помогите пожалуйста составить
  1. limbra
    Ответов:
    3
    Просмотров:
    68
  2. uxbmw3w
    Ответов:
    0
    Просмотров:
    89
  3. GREED
    Ответов:
    1
    Просмотров:
    545
  4. Рая
    Ответов:
    3
    Просмотров:
    791
  5. sonia2000
    Ответов:
    0
    Просмотров:
    965

Поделиться этой страницей