3
的分区
SQL Server 2008的加入只有两个表
表A的样子:
A_ID v1 v2 v3
---------------------------
1 d e f
1 a b c
1 a b d
2 d a b
2 e f g
3 d e f
3 e f g
3 d a b
和表B是类似的:
B_ID v1 v2 v3
---------------------------
Q a b c
Q b a c
Q a b d
R d e f
R a b c
R d e f
P e f g
P d a b
我需要从这两个表背是(A_ID,B_ID)对(如果有的话),其中B_ID =任何一个值的表B中的每一行都具有表A中匹配的行,其中A_ID =任何一个值。换句话说,我需要B中的每个完整三元组的完全匹配集 - 没有超集或子集。 B_ID和A_ID的值不重要。
我认为分区是要走的路,因为我已经有了自然分区A和B的列,并且我还认为我可以预先选择哪些分区,通过确保只有具有匹配行数的分区来连接试图。我无法做到这一点 - 对两个表进行分区很简单,但我无法告诉连接只能对分区进行操作。
在此示例中,将返回(2,P),因为集合P中的所有行均与集合2中的所有行匹配。结果(1,R)将不会返回,因为集合R的所有行均未全部匹配套装1等的行
它完美和相当快,too.THAT是很酷。非常感谢。 –