我的问题是:我有两个表:表A有两列(KeyA和Match),表B有两列(KeyB和Match)。我想与“匹配”列进行比较。这可以通过JOIN之类的东西来完成吗?
如果表A有3行含有特定的“匹配”,而表B有2行,则JOIN将返回所有组合(本例中为6)。我想要它做的事情是尽可能匹配,然后将其他值排除在外。因此,它将使第一个“KeyA”与第一个“KeyB”匹配,第二个“KeyA”与第二个“KeyB”匹配,然后将第三个“KeyA”与NULL匹配,因为表B只有两行为这个“匹配”。顺序实际上是不相关的,只要2行匹配起来,然后表A中的一个值返回表B的NULL值。这不像一个INNER或一个OUTER JOIN。
我希望这是有道理的,它很难表达清楚,并很难找到关键字进行搜索。
编辑: 一个INNER/OUTER连接可以将所有表A的值与所有表B的值进行匹配。一旦B值“用完”,我不希望它与任何其他A值匹配。
实施例: 表A(KEYA,匹配)
(1, “A”)
(2, “A”)
(3, “a”)的
表B(KEYB,匹配)
(11, “A”)
(12, “A”)
希望的输出(KEYA,匹配,KEYB): (1, “A”,11)
(2,“ a“,12)
(3,“a”,NULL)
也许我是密集的,但我没有看到你的描述从一个LEFT OUTER有什么不同JOIN(上左表A)。你能提供一些示例行和预期的输出以使其更清楚吗? –
听起来你需要一个'OUTER JOIN',但有些样本数据有助于澄清它。 – JNK
您能否提供每个表格的一些示例数据,以及查询结果应该是什么样子? – asawyer