Как выбрать записи из таблицы1, которые имеют параметры таблицы3 в таблице2? - PullRequest
0 голосов
/ 06 октября 2011

Допустим, у меня есть три таблицы:

  • таблица1: содержит различные записи;
  • таблица2: содержит какие записи имеют какие параметры;
  • table3: содержит опции;

table2 содержит внешний ключ table1 и table3 - таким образом, указывается, какая запись table1 имеет параметр table3 witch. Записи таблицы1 могут иметь несколько параметров таблицы3;

Я пытаюсь выбрать записи таблицы1, указав их параметры, мне нужно иметь возможность выбрать любой параметр \ любую комбинацию параметров и отобразить все записи таблицы1, которые имеют эту комбинацию параметров, могут иметь дополнительные параметры, но должны иметь указанные ...

Как бы вы написали / построили такой запрос?

примечание: я определяю, какие параметры использовать в форме ..

представьте себе - таблица 1 содержит продукты, а таблица3 содержит различные сведения о продуктах

Пользователь отправляет форму, отмечая флажки, показывающие, какие данные должен иметь продукт, и мне нужно получить все записи, которые имеют эти параметры ...

foreach($table1record as $detail){
  if($this->input->post('detail_{$detail['id']})){
    //option selected, continue building query ...
  }
}

1 Ответ

0 голосов
/ 06 октября 2011

Как насчет этого?

 SELECT t1.*
 FROM table1 as t1
 INNER JOIN table2 as t2
 WHERE t2.SomeColumn IN (SELECT SomeOtherCol FROM table3);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...