2013-07-18 92 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