MySQL连接2个表并联合一列

标签 mysql sql join

我有两个表:

表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 版

有人可以帮我吗?

最佳答案

您似乎想要 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;

关于MySQL连接2个表并联合一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25584337/

相关文章:

sql - Oracle - 仅从列中选择最大值

mysql - 模型协会(JOIN)在 cakephp 中不起作用,显示空结果

sql - 如何使用 MySQL 计算移动平均线?

MYSQL 从同一列中选择多个值作为一行

php - 从多个表中检索多行

mysql - 如何在Mysql存储过程中动态选择表

mysql - MYSQL中带Case的Update语句

mysql - 删除具有相同元数据的重复帖子

sql - 在数据库中存储多项选择测验 - 决定模式

sql - 检测表中随时间变化的已删除行