【问题标题】:How to create a 3rd column based on 2 columns from two tables [inner and outer join] [duplicate]如何基于两个表中的 2 列创建第三列 [内连接和外连接] [重复]
【发布时间】:2016-09-08 07:02:59
【问题描述】:
  • “table alpha”中有很多行,其中一些行也出现在“table beta”中。
  • alpha 行和 beta 行都有一个日期列。
    • 但是,当我选择两个日期列时,表 alpha 不发生 B 行中的行将分配一个空值。

我的问题是我想创建第三个日期列,它将使用表中的日期beta如果它们不为空。如果它们为空,则应使用表 alpha 中的日期。

【问题讨论】:

标签: mysql sql if-statement inner-join outer-join


【解决方案1】:

由于您尚未提供有关数据模型的任何信息。根据你的问题,我给你一个粗略的草稿。

Select 
colA,
colB,
...,
alpha.date1,
beta.date2,
COALESCE(beta.date2,alpha.date1) date3
from 
alpha
left outer join beta (your keys)

【讨论】:

  • 您应该查看COALESCE 并为自己节省大量时间(和复杂性)输入冗长的CASE 语句。
  • 是一个更好的选择 :) @TomH
【解决方案2】:

由于您没有提供任何好的数据示例(数据库架构)和预期结果

这是我的方法:

SELECT 
   a.date,
   COALESCE(b.mycolumn, a.mycolumn)
FROM alpha a
LEFT JOIN beta b
ON a.date = b.date

【讨论】:

    猜你喜欢
    • 2015-04-04
    • 2021-05-17
    • 2014-03-16
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    相关资源
    最近更新 更多