sql - 如何在同一个 select 语句中执行联合和左连接?
问题描述
前言:我是SQL新手,还不太了解,但我正在努力学习。
我想合并两张表(一张有旧数据,一张有新数据——每个都有相同的字段)。
然后,我要用“ID”左键加入。
下面的代码是我一直在尝试的,但没有成功。
SELECT TOP 10 *
FROM clients
LEFT JOIN new_data
(
SELECT * FROM old_data
UNION
SELECT * FROM new_data
)
ON clients.cust_id = new_data.cust_id;
SQL 错误 [500150] [HY000]:Amazon 错误设置/关闭连接:未连接。
解决方案
您需要一个表别名:
SELECT TOP 10 *
FROM clients c LEFT JOIN
(SELECT * FROM old_data
UNION ALL
SELECT * FROM new_data
) d
ON c.cust_id = d.cust_id;
注意:我将其更改为UNION
,UNION ALL
因此不会产生删除重复项的开销。如果您确实想删除重复项,请保留UNION
.
推荐阅读
- c - 我如何使这个算法不那么冗余?
- javascript - Selenium + Protractactor:在 chrome 和 firefox 中下载文件
- ckeditor - 在特定位置将 HTML 元素插入 CKEditor 4
- java - 如何使用相同的键将枚举映射到枚举
- json - 如何在json中具有相似键的现有行旁边添加新行
- ios - 高速公路/城市大道,城市跑。在物理设备上进行测试时是否有创建此场景的方法
- r - 如何将全局归因马尔可夫链结果转化为交易级别的实时收入归因?
- apache-spark - 从本地 jupyter notebook 连接到 spark 集群
- opencv - 设置 Dilation Kernel Anchor
- mindstorms - 有没有办法使用显示块中的显示预览选项来显示 EV3 中有线连接的输出?