我想合并两个表,但是当我在mysql的stroeprocedure中使用union all时它会删除零。
以下两个表格:
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
当我们使用union all时如何保持零值?
此致
答案 0 :(得分: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;
如果VAL2同样如此,那么也使用IF(VAL2 =0, 0,val2) val2
作为val2
您的查询看起来正确,只需看看http://sqlfiddle.com/#!2/9e0845/2