我怎样才能构建一个SQL查询以下结果?
问题描述:
我有2个表:我怎样才能构建一个SQL查询以下结果?
-
table1的
id|val1|val2 1 | 100|200 2 | 200|400
-
表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 被删除,剩余的数据应被采取。
答
使用以下:
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
表结构?定义“一些共同的元素”? – Takarii
欢迎来到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
@RiggsFolly .....我尝试了所有工会......但我无法达到要求 – Chinnu