SQLite3 получает выходные данные из одной таблицы в качестве входных данных для другой - PullRequest
0 голосов
/ 24 января 2011

Таблица1 имеет следующие столбцы

проблема t1 t2

t1 и t2 - INT

проблема является результатом значений от t1, t2

t1 может быть 1,2,3,4,5 t2 может быть 6,7,8,9,10

Я мог бы написать SQL-запрос, который говорит

ВЫБРАТЬ * из таблицы1 ГДЕ (t1 = 1 ИЛИ t1 = 2 ИЛИ t1 = 3 ИЛИ t1 = 4 ИЛИ t1 = 5) И (t2 = 6 ИЛИ t2 = 7 ИЛИ t2 = 8 ИЛИ t2 = 9 ИЛИ t2 = 10 )

Но вместо записи всего выражения (показано выше) я хочу сохранить его в другой таблице (называемой Table2)

Таблица2 имеет следующие столбцы data_entered data_results

data_entered равно 1 data_results - это строка со следующими данными "(t1 = 1 ИЛИ t1 = 2 ИЛИ t1 = 3 ИЛИ t1 = 4 ИЛИ t1 = 5)"

data_entered - 2 data_results - это строка со следующими данными "(t2 = 6 ИЛИ t2 = 7 ИЛИ t2 = 8 ИЛИ t2 = 9 ИЛИ t2 = 10)"

поэтому я хочу создать запрос, где я мог бы сказать

SELECT * from Table1 WHERE ... (и указать data_entered) результаты должны быть такими же, как в вышеупомянутом SQL.

Пожалуйста, помогите.

Спасибо

1 Ответ

2 голосов
/ 24 января 2011

Для первого запроса вы можете использовать IN вместо:

select * from table1 where t1 in (1,2,3,4,5) and t2 in (6,7,8,9,10);

Затем вместо хранения кода sql в table2 сохраняйте каждое значение в отдельной строке.

create table data (entered, result);
insert into data values (1, 1);
insert into data values (1, 2);
...
insert into data values (2, 10);

Тогда вы можете сделать:

select *
  from table1
 where t1 in (select result from data where entered = 1)
   and t2 in (select result from data where entered = 2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...