我有两张桌子:
表A
ID | DATE | VALUE | KEY|
1 30.8.14 100 11
2 25.8.14 500 11
2 20.8.14 250 11
表B
ID | DATE | VALUE | KEY|
1 30.8.14 AB 11
2 25.8.14 CD 11
3 10.8.14 EF 11
这两个表应该合并,key用于定义应合并的条目WHERE KEY = '11'
如果表A中的日期也在表B中,则它在两个值的条目上都变为 如果表A中也没有日期也在表B中,则B的值变为(null) 在最后,应该只有1个日期字段。 列也应该是唯一的名称..
我创建了这个示例表,我的输出应该是什么样子
joinedDate | aValue | bValue
30.8.14 100 AB
25.8.14 500 CD
20.8.14 250 (null)
10.8.14 (null) EF
我在Maria DB上使用MySQL 5.5版
有人可以帮助我吗?
答案 0 :(得分:1)
您似乎想要full outer join
,MySQL并不提供。这是一种方法:
select d.date, a.value as avalue, b.value as bvalue
from ((select date from a union
select date from b
)
) d left join
a
on a.date = d.date left join
b
on b.date = d.date;
答案 1 :(得分:1)
select a.date, a.value as avalue, b.value as bvalue
from tablea a
left join tableb b
on a.date = b.date
union all
select b.date, null, b.value
from tableb b
left join tablea a
on a.date = b.date
where a.date is null
<强>小提琴:强> http://sqlfiddle.com/#!2/09ab9e8/4/0