0

最初のサブクエリの残りを取り出し、2番目のサブクエリのすべてを取り出すクエリを作成しようとしているので、基本的に(以下の例から)Q1-Q2 = 121-7 = 114(Q1にある参加者ID) Q2ではありません)

select ParticipantID
 from
 (
 Query 1 results (121 in my case)
 ) AS Q1
 Join 
 (
 Query 2 results (7)
 ) AS Q2
4

4 に答える 4

0
Select Q1.ParticipantID from (query1) as Q1 where Q1.ParticipantID NOT IN (select participantID from query2)
于 2013-03-15T14:37:18.893 に答える
0

あなたが使用することができますNOT IN

SELECT * FROM Q1
WHERE id NOT IN (SELECT ParticipantID FROM Q2)

または使用EXCEPT(またはMINUS、DBエンジンによっては):

SELECT ParticipantID FROM Q1
EXCEPT
SELECT ParticipantID FROM Q2
于 2013-03-15T14:38:17.370 に答える
0

NOT IN次の述語を使用します。

select ParticipantID
from
(
   -- Query 1 results
) AS Q1
WHERE ParticipantID NOT IN(
                           -- SELECT ParticipantID 
                           -- FROM Query 2 results
                          ) 

または、LEFT JOIN

SELECT ...
FROM
(
   --- Query 1 results
) AS Q1
LEFT JOIN
(
   -- Query 2 
) AS Q2 ON ... -- JOIN condition here
WHERE Q2.ParticipantID IS NULL;
于 2013-03-15T14:36:31.577 に答える
0

SQL サーバーを使用している場合:

以下を使用できます。

例外: EXCEPT は、右側のクエリにも見つからない、左側のクエリからの個別の値を返します。

構文

{ <query_specification> | ( <query_expression> ) } 
{ EXCEPT | INTERSECT }
{ <query_specification> | ( <query_expression> ) }

例えば:

SELECT ParticipantID
FROM Q1
EXCEPT
SELECT ParticipantID
FROM Q2;
于 2013-03-15T14:38:43.243 に答える