2013-07-27 3 views
1

Я хотел бы объединить две таблицы, но он удаляет ноль, когда я использовал union all in stroeprocedure в mysql.Mysql union remove zero

две таблицы, как следующее:

TBL1: 

ID VAL1 VAL2 
2 3 3 
3 3 0 

TBL2 

ID VAL1 VAL2 
3 0 3 
4 0 4 

Select ID,VAL1,VAL2 FROM TBL1 
UNION ALL 
Select ID,VAL2,VAL2 FROM TBL2; 

ERROR RESULT: 
    ID VAL1 VAL2 
    2 3 3 
    3 3  
    3  3 
    4  4 

RIGHT RESULT: 
    ID VAL1 VAL2 
    2 3 3 
    3 3 0 
    3 0 3 
    4 0 4 

Как сохранить Нулевое значение, когда мы используем объединение всех?

С уважением,

+0

[Невозможно воспроизвести се] (http://sqlfiddle.com/#!2/cb003/1). Также есть небольшая проблема (вы дважды выбрали Val2 из второй таблицы), но это не связано с вашей проблемой. – hims056

+0

Ваш запрос работает правильно: http://sqlfiddle.com/#!2/34126/1 Искать ошибку где-то еще – user4035

+0

Эта проблема не может быть воспроизведена с данной информацией. Вы выполняете этот запрос непосредственно в MySQL или через какой-то язык программирования? Какую версию MySQL вы используете? – Manu

ответ

1

попробовать этот

 Select ID,IF(VAL1 =0, 0,val1) val1,VAL2 FROM TBL1 
    UNION ALL 
    Select ID,IF(VAL1 =0, 0,val1) val1,VAL2 FROM TBL2; 

DEMO HERE

, если то же самое с вами VAL2 затем использовать также IF(VAL2 =0, 0,val2) val2 для val2

ваш запрос выглядит правильный взгляд демо http://sqlfiddle.com/#!2/9e0845/2

+0

Ваш запрос производит тот же результат без IF: http://sqlfiddle.com/#!2/9e0845/2 – user4035

+0

Hello - пустое значение в таблице. –

+0

что-то не так с вашим кодом, запрос хорош, как вы видите демо. –