給定兩個表(每個表中的行是不同的):通過比較子集選擇記錄
1) x | y z 2) x | y z
------- --- ------- ---
1 | a a 1 | a a
1 | b b 1 | b b
2 | a 1 | c
2 | b 2 | a
2 | c 2 | b
2 | c
有沒有辦法在第一臺的x
列選擇的值,其值的子集在y
列中,對於那個x
,與第二個表的z
列中的值完全匹配?
如果是1)
,預期結果爲1
。如果c
被添加到第二個表中,那麼預期的結果是2
。
如果2)
,預期結果是no record
,因爲第一個表中的子集都不匹配第二個表中的子集。如果c
被添加到第二個表中,那麼預期的結果是1, 2
。
我使用except
和intersect
與第二個表,工作正常,比較第一個表的子集嘗試,但時間過久的intersect
一部分,我想不通爲什麼(第一臺擁有約10.000條記錄,第二條約10條)。
編輯:我已經更新了問題以提供額外的場景。
不按要求工作:http://sqlfiddle.com/#!3/6d53d/1/0(_「如果c被添加到第二個表然後預期的結果是2「_) – 2012-07-11 13:32:20
@TimSchmelter - 你的小提琴中有一個錯字。你可以在表1中插入'a,c,c'。它應該是'a,b,c'。 – MatBailie 2012-07-11 13:36:53
你是對的+1 – 2012-07-11 13:39:17