MySQL:合并两个表,某些列不同

标签 mysql database sqlite

我想合并两个sql表要求是

  • game_data1 列:安装日期、来源、安装次数、支出、CPI
  • game_data2 列:安装日期、购买日期、来源、收入
  • 合并表(像这样):安装日期、来源、安装次数、支出、CPI、购买日期、收入

我已经阅读了其他答案,例如 this ,所以通过阅读这些类型的答案,我提出了一个查询,即

SELECT s.install_date, s.source, s.installs, s.Spending, s.CPI, r.install_date, r.purchase_date, r.source, r.revenue 

FROM game_data as s

JOIN game_data2 as r ON r.install_date = s.install_date AND r.source = s.source

它应该创建一个 install_date 列和一个源列,但它创建了两个单独的列,我不知道这有什么问题

game_data1(table1 which i want to merge)

enter image description here

game_data2(table2 which i want to merge)

enter image description here

我已经编写了一个更改日期格式的函数,所以不要介意日期格式

Result

+--------------+----------+----------+----------+----------+--------------+---------------+----------+---------+
| install_date | source   | installs | Spending | CPI      | install_date | purchase_date | source   | revenue |
+--------------+----------+----------+----------+----------+--------------+---------------+----------+---------+
| 2015-03-01   | facebook |    10000 |     6000 |      0.6 | 2015-03-01   | 2015-03-01    | facebook |     600 |
| 2015-03-01   | facebook |    10000 |     6000 |      0.6 | 2015-03-01   | 2015-03-01    | facebook |     600 |
| 2015-03-01   | facebook |    10000 |     6000 |      0.6 | 2015-03-01   | 2015-03-02    | facebook |     550 |
| 2015-03-01   | facebook |    10000 |     6000 |      0.6 | 2015-03-01   | 2015-03-02    | facebook |     550 |
| 2015-03-01   | facebook |    10000 |     6000 |      0.6 | 2015-03-01   | 2015-03-03    | facebook |     500 |
| 2015-03-01   | facebook |    10000 |     6000 |      0.6 | 2015-03-01   | 2015-03-03    | facebook |     500 |
| 2015-03-01   | facebook |    10000 |     6000 |      0.6 | 2015-03-01   | 2015-03-04    | facebook |     450 |

我想按原样合并这些表,但我希望 install_date 和源应该是一列而不是两列

如果有人想寻求帮助,我发现寻求帮助很有用,但无法正确理解:Link

如有任何帮助,我们将不胜感激

最佳答案

您只需在查询中指定install_datesource 一次

SELECT 
    s.install_date,
    s.source,
    s.installs,
    s.Spending,
    s.CPI,
    r.purchase_date,
    r.revenue
FROM
    game_data AS s
        JOIN
    game_data2 AS r ON r.install_date = s.install_date
        AND r.source = s.source;

关于MySQL:合并两个表,某些列不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54324711/

相关文章:

mysql - 如何解决这个 pom.xml 问题? (连接到数据库)

mysql执行计划通过order by减少成本?

ruby-on-rails - 如何使外键与sqlite3和Ruby on Rails连接

java - 如何从列表转换为数组?安卓

mysql - 分组查找每组的最小值、最大值

MySQL 列有空值但 "is null"不工作

java - 从sqlite android中的表中获取单行

java - 数据库插入后 JTable 不刷新

mysql - 检查最近更新时间是否大于10分钟

sql-server-2008 - 将SQLite数据库文件中的表批量加载到SQL Server