如何为以下结果构造SQL查询?

时间:2016-02-12 09:59:09

标签: mysql database

我有两张桌子:

  1. 表1

        id|val1|val2    
        1 | 100|200    
        2 | 200|400
    
  2. 表2

    id|val1|val2    
    1 | 100|250    
    3 | 500|400
    
  3. table3应该是,

    id|val1|val2
    1 | 100|250
    2 | 200|400
    3 | 500|400
    

    这两个表有一些共同的元素。

    我想编写一个导致以下条件的查询:

    表3 =表2 +(表1至表2)

    应从 Table1 中删除常用元素,并应删除其余数据。

1 个答案:

答案 0 :(得分:0)

使用以下内容:

select ifnull(id_2, id_1) id, 
       ifnull(val1_2, val1_1) val1, 
       ifnull(val2_2, val2_1) val2 
from (  
       select t1.id id_1, t1.val1 val1_1, t1.val2 val2_1, 
              t2.id id_2, t2.val1 val1_2, t2.val2 val2_2
       from table1 t1 left join table2 t2 on t1.id = t2.id 
       union
       select * from table1 t1 right join table2 t2 on t1.id = t2.id 
) x

SQL Fiddle