【问题标题】:SQL noob, how to join two tables and store data into a new_table?SQL菜鸟,如何连接两个表并将数据存储到一个new_table中?
【发布时间】:2018-09-29 09:18:51
【问题描述】:

我有两个要加入的表(就符号和日期而言(只有 YEAR 必须匹配!!))并存储在一个 new_table 中,这可能吗?

预期结果:

symbol       date 1             value 1          date 2             value 2

"A"          "2010-12-31"       "29.635193133"   "2010-01-05"       "22.324748927"

1.

symbol   date           value_1
"A"     "2010-12-31"    "29.635193133"
"A"     "2011-12-30"    "24.985693133"
"A"     "2012-12-31"    "29.284693133"
"AAL"   "2010-12-31"    "10.01"
"AAL"   "2011-12-30"    "5.07"

和 2.

symbol   date           value_2
"A"     "2010-01-05"    "22.324748927"
"A"     "2011-01-05"    "29.5135915594"
"AAL"   "2012-01-05"    "5.15"
"AAL"   "2015-01-05"    "54.369999"

【问题讨论】:

  • 我不明白你的数据/问题。
  • 惊人的预期结果。
  • 哪个sql版本? mysql 还是 sql-server?
  • “存储在新表中”通常是一种反模式,因为您正在复制数据。当您再次需要答案时,您可以轻松地重新运行查询。如果 Table1 或 Table2 中的数据发生变化怎么办?它会使 Table3 无效吗?你必须刷新它吗?如果是这样,您无论如何都要再次运行查询!保留一份单独的副本可能有原因(绩效、报告、审计等),但请先仔细考虑。

标签: sql join datatable inner-join


【解决方案1】:

可能还有更多问题需要解决,但这里有一个解决方案:

create table table3 as 
select *
from table1
inner join table2 
on symbol1 = symbol2
and year(date1) = year(date2)

工作示例:http://sqlfiddle.com/#!9/2cdf4f/1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 2021-09-02
    • 1970-01-01
    • 2013-07-11
    • 2011-04-07
    相关资源
    最近更新 更多