2013-07-18 4 views
-3

Я хочу сделать что-то вроде этого:MySQL, если значение оператор подзапрос

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

К сожалению «как TMP» и returing ТМП не работает. Как я могу заставить это работать? не делая повторять запрос:

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

Вы почитайте на 'JOIN' заявление ? – DevlshOne

+0

Реальная ситуация немного сложнее, поэтому я хотел бы знать, как я мог бы исправить ситуацию выше (без объединений). – user2511309

+0

Может быть, не использовать РСУБД? – Strawberry

ответ

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

EDIT Это не будет работать. Вы должны определить количество отбора где-то с "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 
Смежные вопросы