主页>技术社区>编程问答

表的合并,无重复条件

eIT.com.cn 2023/3/17 11:23:38 阅读 3 次

打印


如何解决表的合并,无重复条件?

三个表A,B,C。 A和B具有相同的结构,即相同的列和已经不同的键。我想做的是统一A和B,然后与C加入工会。我知道我可以这样:

(SELECT x FROM A INNER JOIN C ON y WHERE z) 
UNION 
(SELECT x FROM B INNER JOIN C ON y WHERE z)

但是,我不得不重复这对我来说非常不便的条件,尤其是当时间更长并且需要经常调整时。

如果我在内部进行联合,那么根本不会为我完成(可能只是花了无法忍受的时间)

SELECT y
FROM (SELECT * FROM A UNION SELECT * FROM B) U
INNER JOIN C on y
WHERE z

是否有一种更优雅,更有效的方式来重复执行此操作?

我使用SAP 。

解决方法

查询第二次未完成的原因是,通过union-ing,您丢失了有关该表的所有上下文和统计信息,该表无法使用索引,因此必须下降回到较慢的方法。

听起来第一个选项是唯一的一个,但是您可能可以使用VIEW来避免重复输入相同的内容。有关详细信息,请参见。

,

如果您的栏没有重复,这应该会很好地工作:

SELECT DISTINCT x
FROM ((SELECT *      FROM A INNER JOIN            C           ON y      )      UNION ALL     (SELECT *      FROM B INNER JOIN           C           ON y     )    ) abc
WHERE z;





相关内容


热门栏目


特别声明


最新资讯
热讯排行



合作媒体友情链接
生活常识小贴士 软件开发教程 智慧城市生活网 息县通生活服务[移动版] 息县商圈[移动版] 美食菜谱
健康养生 法律知识 科技频道 电影影讯 留学考研学习 星座生肖|解梦说梦




关于我们 | 联系我们 | 合作媒体 | 使用条款 | 隐私权声明 | 版权声明

      Copyright © 2023 eIT.com.cn. All Rights Reserved. 豫ICP备2022012332号