【发布时间】:2019-12-12 09:48:01
【问题描述】:
我有一个主表t,我想将来自另外两个表m 和n 的出生日期信息加入其中,从而在表t 中创建列birth_date。我加入的关键变量是ID,它出现在所有三个表中。
我遇到的问题是表t 包含变量age,我想加入表m 中的出生日期仅当 t.age < 18 和表n 中的出生日期仅当 t.age >= 18。
我现在拥有的是:
select t.*,
m.birth_date as birth_date_1,
n.birth_date as birth_date_2
from t
left join m
on (t.ID = m.ID and t.age < 18)
left join n
on (t.ID = n.ID and t.age >= 18);
这似乎可行,但是,我创建了两列 birth_date_1 和 birth_date_2。如何在这一选择中执行此操作以仅创建一列birth_date?
【问题讨论】:
-
“在这一选择中执行此操作以仅创建一列”不清楚。要从中选择的每一行都有某些具有某些值的列。你想从这样的一行中得到什么结果?使用足够多的单词、句子和对部分示例的引用来清楚完整地表达你的意思。
-
请在代码问题中给出minimal reproducible example--剪切&粘贴&运行代码;具有期望和实际输出(包括逐字错误消息)的示例输入(作为初始化代码);标签和版本;明确的规范和解释。对于包含最少代码的错误,您可以给出的代码是您显示的代码可以通过您显示的代码扩展为不正常。 (调试基础。)对于包含 DBMS 和 DDL 的 SQL,其中包括约束、索引和表格初始化。