2013-07-18 96 views
-3

我想要做這樣的事情:MySQL的if語句子查詢值

SELECT IF((SELECT something FROM table) AS tmp) > 0, tmp, (SELECT bla FROM oter_table)) 

不幸的是,「作爲TMP」和returing tmp的不工作。我怎樣才能使這個工作?沒有做重複查詢:

SELECT IF((SELECT something FROM table) > 0, (SELECT something FROM table), (SELECT bla FROM oter_table)) 
+1

上有沒有你'JOIN'聲明讀了? – DevlshOne

+0

實際情況比較複雜一點,所以我想知道我怎麼能解決上述情況(不含聯接)。 – user2511309

+0

也許不使用RDBMS? – Strawberry

回答

0
SELECT IF((SELECT something AS tmp FROM first_table) > 0, tmp, (SELECT bla FROM other_table)) 

編輯這是行不通的。你需要一個 「WHERE」 條款某處量化的選擇,像這樣:

SELECT IF((SELECT something FROM first_table) > 0, (SELECT something FROM first_table), (SELECT something_else FROM second_table)) FROM first_table WHERE something = 45