美文网首页
SQL将两个表按某相同记录列合并

SQL将两个表按某相同记录列合并

作者: 李彪_哈工大 | 来源:发表于2017-08-11 11:17 被阅读0次

最近在学习SQL语言,不得不说,数据库很强大,操作速度非常快,但语言实在是有些别扭,规范性差且语法不完善。怪不得它叫查询语句,不叫语言。整体学习下来,SQL语言是一个缝缝补补的结果,写起来非常不轻松。同时SQL server的帮助和语言操作能力很差,不利于编程。总之,非常快,非常有用,但非常不好用!

正好遇到这样一个问题,无数次试错后终于得到解决,用来说明以上观点。

有两个表,A和B,两表数据分别如下

表A 表B

操作目的是将两表合并,得到表C,特点是以临时表#A、#B共有的Starting_Timestamp列为关键字进行合并,得到结果C


想得到的结果表C

参考博客http://bbs.csdn.net/topics/370140339得到的准确结果

正确的语法为

SELECT a.Starting_Timestamp, Un3_Avg, Uw3_Avg, RH3_Avg
FROM #A a
LEFT JOIN  #B
ON a.Starting_timestamp = #B.Starting_timestamp

--或完整写法

SELECT e.Starting_Timestamp, Un3_Avg, Uw3_Avg, RH3_Avg
FROM #A 
LEFT JOIN
(SELECT Starting_timestamp, RH3_Avg FROM #B) 
ON #A.Starting_timestamp = #B.Starting_timestamp

关键点是在SELECT的变量描述中描述结果列出的所有记录名,使用LEFT JOIN连接两个表,而非如下检索语句。

SELECT * FROM #A e
LEFT JOIN
(SELECT RH3_Avg FROM #B) f    
--这个方法主要问题出在此处的SELECT上,查询得到的新表并没有包含关键字字段
ON e.Starting_timestamp = Starting_timestamp   
 --但在此处这样一个本应该出错的未知字段因为语法的不严格,判断相等,被解析为赋值而结果出错
结果错误,共36行,是A和B的乘积

若没有在SELECT中描述准确的结果,则会有如下结果

SELECT * 
FROM #A
LEFT JOIN #B
ON #A.Starting_timestamp = #B.Starting_timestamp
结果错误,timestamp列出现两次

相关文章

  • SQL将两个表按某相同记录列合并

    最近在学习SQL语言,不得不说,数据库很强大,操作速度非常快,但语言实在是有些别扭,规范性差且语法不完善。怪不得它...

  • DQL:数据查询语言(多表)

    一、合并结果集 合并结果集就是把两个select语句的查询结果合并到一起,注意被合并的两个表:列、列类型必须相同 ...

  • Power Pivot中交叉构建的表

    1. Union A. 语法 B. 返回 表——合并的表的所有行和列 C. 注意事项 合并的表必须列数相同 合并...

  • SQL将两个表合并

    背景: 给客户做的预测,做完了。由于算力限制?,我将cust list分成了两个数据表做,最终的输出结果也是有两个...

  • 一句代码合并Excel表

    两个Excel中都有相同的一列,怎样依赖这列数据将两个Excel合并到一起?使用Python合并表格只要一句代码!...

  • pandas x sql server

    需求:从多个子表中,提取相关性信息,合并思路:使用pandas读取sql server 表内容,将需要的列修改为对...

  • Tableau 4. 数据合并

    数据合并类似SQL中的UNION ALL(不去重的合并)。 适用于数据列相同,数据结构相同的多个数据源,比如多个月...

  • python数据分析(三)

    1、记录合并 是指将两个结构相同的数据框,合并成一个数据框记录合并函数:concat([dataFrame1,da...

  • join

    按两个文件的相同字段合并。

  • R语言reshape2包处理数据2021.3.6

    1. merge函数合并数据 merge函数通过by选择合并某列的相同值。 2. reshape2包合并数据 这个...

网友评论

      本文标题:SQL将两个表按某相同记录列合并

      本文链接:https://www.haomeiwen.com/subject/owjlrxtx.html