2013-08-29 149 views
1

我有2个表具有相同的列。第一张桌子让我存储用户账单,第二张桌子存储账单取消。合并2个相同的表行

first table 
----------- 
id - total 
----------- 
1 - 100 
2 - 85 
3 - 50 

second table 
----------- 
id - total 
----------- 
2 - 85 


Result of JOIN 
------------------------ 
id - total - status 
------------------------ 
1 - 100 - OK 
2 - 85 - OK 
3 - 50 - OK 
2 - 85 - CANCEL 

我该如何获得上述结果?

回答

3

使用集合运算符UNION ALL将两个表合并成一个表。

SELECT id, total, 'OK' as status 
FROM First_Table 
UNION ALL 
SELECT id, total, 'CANCEL' as status 
FROM Second_Table 
3

查询:

SQLFIDDLEExample

SELECT t1.id, 
     t1.total, 
     'OK' AS status 
FROM first t1 
UNION ALL 
SELECT t2.id, 
     t2.total, 
     'CANCEL' AS status 
FROM second t2 

结果:

| ID | TOTAL | STATUS | 
-----|-------|--------| 
| 1 | 100 |  OK | 
| 2 | 85 |  OK | 
| 3 | 50 |  OK | 
| 2 | 85 | CANCEL | 
3

您可以使用下面的代码:

select *, 'OK' AS [Status] from [first table] 
UNION ALL 
select *, 'Cancel' from [second table]