2011-01-24 86 views
0

表1具有以下的列sqlite3的獲得從一個表輸出作爲輸入提供給另一個

問題 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 =但或T2 = 9或T2 10)

代替寫出整個表達式(如上所示),我希望將其存儲到另一個表(稱爲表2)

表2具有以下的列 data_entered data_results

data_entered是1 data_results是一個包含以下數據的字符串「(t1 = 1 OR t1 = 2 OR t1 = 3 OR 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

爲了您的第一個查詢,則可以代替使用:

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

然後,而不是存儲在表2 SQL代碼,每個值存儲在一個單獨的一行。

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); 
相關問題