我怎样才能构建一个SQL查询以下结果?

问题描述:

我有2个表:我怎样才能构建一个SQL查询以下结果?

  1. table1的

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

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

表3应该是这样的,

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

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

我想要写的查询,这导致以下条件:

表3表2 = +(Table1-表2)

的共同要素应该从表1 被删除,剩余的数据应被采取。

+2

表结构?定义“一些共同的元素”? – Takarii

+1

欢迎来到SO。 请阅读[我可以问哪些主题](http://stackoverflow.com/help/on-topic) 和[如何提出一个好问题](http://stackoverflow.com/help/how-to - 问) 和[完美的问题](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/) SO是**不是免费的编码或教程服务* *你必须表明你已经努力解决你自己的问题。 – RiggsFolly

+0

@RiggsFolly .....我尝试了所有工会......但我无法达到要求 – Chinnu

使用以下:

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