2011-01-24 62 views
0

我在數據庫中有2個表。爲SQLite3創建動態查詢

表2有將需要爲表1

表1具有以下字段

名稱 FoodColor FoodSmell FoodCookingStyle

大家都知道某些食物能值以各種方式煮熟(同時產生相同的結果)。一種方法是爲每個變體創建一個新行。

表2會對數據FoodCookingStyle像 FoodCookingStyle = 1或FoodCookingStyle = 2或FoodCookingStyle = 3

所以結果是我要創建一個使用從表2的結果,產生一個SQL查詢,將查詢看起來像

SELECT * FROM TABLE1 WHERE FoodCookingStyle=1 OR FoodCookingStyle=2 OR FoodCookingStyle=3 

(唯一的區別是我想查詢table2,而不是輸入表達式)。

正在使用的DB類型是SQLite3。

謝謝


爲了澄清我的意思。 我需要table2的輸出作爲table1的輸入

+0

的行我不知道我按照你的問題。如果您已經有Table1中的FoodCookingStyle列,那麼您需要從Table2中獲得什麼,您無法單獨查詢Table1? – mikel

回答

1

這個問題有點混亂。你在尋找子查詢嗎?子查詢的語法是沿着SELECT * FROM Table1 WHERE FoodCookingStyle IN (SELECT FoodCookingStyle FROM Table2 WHERE FoodCookingStyle=1 OR FoodCookingStyle=2 OR FoodCookingStyle=3)

+0

我真的需要輸出到table2作爲table1的輸入 –

+0

SELECT * FROM Table1 WHERE FoodCookingStyle IN(SELECT FoodCookingStyle FROM Table2 WHERE FoodCookingStyle IN(1,2,3)) 與miket2e的答案類似,就是我正在使用一個IN子句,而不是= – Arun

+0

@Arun感謝您的更正,'IN'也是我打算輸入的內容。 – mikel