我想从两个表中选择某些列,并创建一个连接到第三个表
Posted
技术标签:
【中文标题】我想从两个表中选择某些列,并创建一个连接到第三个表【英文标题】:I want to select certain columns from two tables, and create a join into a third table 【发布时间】:2019-09-10 20:17:18 【问题描述】:我有两个表 f_com 和 d_summary,我从这两个表中选择了下面的字段,并希望将键上的表连接到第三个表中。
Create table temp.merge
Select D_AH_MH_SUMMARY_KEY, MID_KEY, CHID_KEY, ACTIVITY_DT,
SPONSOR_STATE, RESPONSE_TYPE, IS_CURRENT from f_com
Select d_ah_mh_summary_key, activity_name, activity_type,
activity_dt from d_summary
Join on f_com.D_AH_MH_SUMMARY_KEY = d_summary.d_ah_mh_summary_key
group by D_AH_MH_SUMMARY_KEY, MID_KEY, CHID_KEY, ACTIVITY_DT,
SPONSOR_STATE, RESPONSE_TYPE, IS_CURRENT, activity_name, activity_type, activity_dt
期望合并表 temp.merge
与从两个表中选择的字段,合并到 f_com.D_AH_MH_SUMMARY_KEY = d_summary.d_ah_mh_summary_key
【问题讨论】:
第一个问题是WHY? 除非这是存储过程中的临时表,否则您将面临维护噩梦。话虽如此,您的查询格式不正确。有很多问题。例如,GROUP BY
子句不是必需的,因为您没有聚合值。 GROUP BY
与 SUM(column)
或 COUNT(column)
等函数一起使用。
@daShier:是的,它是一个临时表。
【参考方案1】:
同样使用CREATE TABLE ... SELECT Syntax 语句。
CREATE TABLE temp_merge AS
SELECT
f_com.D_AH_MH_SUMMARY_KEY AS f_com_D_AH_MH_SUMMARY_KEY,
f_com.MID_KEY,
f_com.CHID_KEY,
f_com.ACTIVITY_DT AS f_com_ACTIVITY_DT,
f_com.SPONSOR_STATE,
f_com.RESPONSE_TYPE,
f_com.IS_CURRENT
d_summary.d_ah_mh_summary_key,
d_summary.activity_name,
d_summary.activity_type,
d_summary.activity_dt
FROM f_com
JOIN ON d_summary ON f_com.D_AH_MH_SUMMARY_KEY = d_summary.d_ah_mh_summary_key
GROUP BY f_com.D_AH_MH_SUMMARY_KEY, MID_KEY, CHID_KEY, ACTIVITY_DT,
SPONSOR_STATE, RESPONSE_TYPE, IS_CURRENT, activity_name, activity_type, activity_dt
注意:如评论中所述,如果您不需要 GROUP BY
子句,只需将其删除。
【讨论】:
以上是关于我想从两个表中选择某些列,并创建一个连接到第三个表的主要内容,如果未能解决你的问题,请参考以下文章