mysql - 连接两个表并合并mysql中的公共(public)列

标签 mysql datetime join outer-join

我有 2 个 mysql 表:

t1 with columns as follows:
customer, datetime, products1
t2 with columns as follows:
customer, datetime, products2
t1: customer  datetime             products1  country
    111       2018-11-23 01:12:33    p1         A
    111       2018-11-23 01:13:00    p2         A   
    112       2018-11-23 01:12:12    p1         B
    112       2018-11-23 01:15:10    p3         B


t2: customer  datetime             products2
    111       2018-11-23 01:12:40    q1
    111       2018-11-23 01:13:00    q2
    112       2018-11-23 01:12:10    q1
    112       2018-11-23 01:15:20    q3

我想同时加入mysql的doing和outer join,只得到1个日期时间,1个客户,合并这两个产品,最后按日期时间排序。所以我想要这样的东西:

 customer         datetime              products    country
  112             2018-11-23 01:12:10     q1          NULL
  112             2018-11-23 01:12:12     p1          B
  111             2018-11-23 01:12:33     p1          A
  111             2018-11-23 01:12:40     q1          NULL
  111             2018-11-23 01:13:00     p2          A
  111             2018-11-23 01:13:00     q2          NULL
  112             2018-11-23 01:15:10     p3          B
  111             2018-11-23 01:13:00     q2          NULL

我只是想知道如何将两个日期时间合并为一个并且对于产品来说是相同的。

最佳答案

由于两个表之间没有公共(public)数据,我认为您需要一个UNION,而不是MERGE。试试这个:

SELECT
  customer,
  datetime,
  products1 as products,
  country
FROM t1
UNION
SELECT
  customer,
  datetime,
  products2 as products,
  null as country
FROM t2

关于mysql - 连接两个表并合并mysql中的公共(public)列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53616878/

相关文章:

MYSQL:如何创建一个触发器来根据来自不同表的值计算字段值?

mysql 连接查询双

php - 使用 SQL 语句将三个表连接在一起以从每个表中获取数据

php - 查询问题,var_dump 说 bool(false)

mysql - 无法在linux上启动mysql

java - Hibernate 查询比 MySQL 中的 native 查询慢

MySQL - 通过给出表名称显示 CREATE TABLE 结果

datetime - 将 joda DateTime 转换为 java.time.LocalDate

javascript - 谷歌地图 API |当外面很黑时(取决于时间)如何更改 map 样式(复古到夜间模式)?

php - 如何在 PHP 中获取当前日期和时间?