我有 2 个表,分别称为 G 和 T,我根据多个字段的匹配来选择记录。
SELECT
g.ID, t.ID
FROM
g JOIN t
ON (g.Field1 = t.Field1
AND g.Field2 = t.Field2
AND .... )
可以有多个记录匹配每一侧,例如行 t1 和 t2 在用于匹配的字段上是相同的,g1 和 g2 也是如此,它们相互匹配,给出
t1 g1
t1 g2
t2 g1
t2 g2
(实际的 id 是整数,但你明白了)
我们想要的是每个 T 记录只匹配一个 G 记录(我们不在乎,只要它们是不同的),例如
t1 g1
t2 g2
或者
t1 g2
t2 g1
可以接受,但不能
t1 g1
t2 g1
而不是两个结果集 - 我们只想要总共 2 行(在本例中)。
每个表的初始选择中可能有(比如说)30,000 行。不是所有的东西都会有匹配的,这很好。
这可以按设置完成还是我必须使用光标?
编辑以回应答案。