【发布时间】:2014-06-23 08:55:45
【问题描述】:
我需要检查 SQL 上两个数据表之间的相似性。我正在为 Win 7 上的 Netezza 开发 Aginity Workbench。
桌子很大。其中一个有1亿行4列;另一个有 15 亿行和 3 列。
示例,表 1
ID1 ID2 ID3 Value
xxxx xxxxxx xxxxxxxx xxx.xxxxxx // here x is 0-9 int
表2:
ID1 ID2 Value
xxxx xxxxxx xxx.xxxxxx
ID1 和 ID2 可能重复,但值在同一个表中不重复。
我需要检查 table1 是否是 table2 的子集,并找到 table1 中可用但 table2 中不可用的行,反之亦然。
我是 SQL 新手。如何设计高效的 SQL 查询?我需要经常执行相同的任务,因此高效查询可能更有帮助。
更新 我在以下位置使用了解决方案:
Get super set records not contained in a subset (mutual exclusion)
但是,结果是 0 行。我还检查了两个表中没有重复的行。 为什么 table2 比 table1 大得多?
还有其他方法可以找到它们的差异吗?
谢谢
【问题讨论】:
-
Mysql 还是 SqlServer?似乎不太可能两者兼而有之。你试过什么是一个问题。这也是一项一次性的任务,时不时地,还是您想要经常做的事情?
-
你造成困难的部分是什么?
-
@Dan Bracuk,我是 SQL 新手。如何设计高效的 SQL 查询?谢谢
-
@Tony Hopkinson,请查看我的新编辑。谢谢!
-
MySql 还是 sql server??这是两个基本的外连接查询,在添加了几个索引之后,您在软件方面无能为力。你最好找到一种方法来完全避免这样做,通常是不可取的......
标签: mysql sql sql-server sql-server-2008 netezza