0

それぞれが 2 つの ID フィールドを持つ一連のレコードを返す一連のサブクエリがあります。すべてのサブクエリに存在するすべての ID ペアのリストを返す必要があります。私はこのようなことができると思っていました:

SELECT Q1.V1, Q1.V2
FROM ( [SUBQUERY1] ) AS Q1
INNER JOIN ( [SUBQUERY2] ) AS Q2 ON Q2.V1 = Q1.V1 AND Q2.V2 = Q1.V2
INNER JOIN ( [SUBQUERY3] ) AS Q3 ON Q3.V1 = Q2.V1 AND Q3.V2 = Q2.V2
INNER JOIN ( [SUBQUERY4] ) AS Q4 ON Q4.V1 = Q3.V1 AND Q4.V2 = Q3.V2

より良い方法はありますか?

4

2 に答える 2

0

Intersect の方がおそらく優れていますが、group by を HAVING COUNT(*) > number_of_subqueries 句とともに使用することもできます。

select V1, V2
from 
(
(subquery_1)
union 
(subquery_2)
union 
(subquery_3)
)
group by v1, v2
having count(*) > 3
于 2013-05-07T09:17:30.857 に答える
0

どうやら答えは使用することINTERSECTです:

[SUBQUERY1]
INTERSECT
[SUBQUERY2]
INTERSECT
[SUBQUERY3]
INTERSECT
[SUBQUERY4]

良い!

于 2013-05-07T04:39:58.087 に答える