SQLite3从一个表获取输出作为另一个表的输入

时间:2011-01-24 05:38:50

标签: sqlite sql

表1包含以下列

问题 T1 T2

t1和t2是INT

问题是来自t1,t2

的值的结果

t1可以是1,2,3,4,5 t2可以是6,7,8,9,10

我可以编写一个说

的SQL查询

SELECT * from Table1 WHERE(t1 = 1 OR t1 = 2 OR t1 = 3 OR t1 = 4 OR t1 = 5)AND(t2 = 6 OR t2 = 7 OR t2 = 8 OR t2 = 9 OR 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)”

所以我想创建一个QUERY,我可以说

SELECT * from Table1 WHERE ...(并指定data_entered)结果应该与上面提到的SQL相同。

请帮忙。

由于

1 个答案:

答案 0 :(得分:2)

对于第一个查询,您可以使用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);