0

SQLクエリで苦労しています...3つのテーブルがあります。

1)仕事

2)paper1

3)paper2

paper1対応するジョブIDが参照さpaper2れる列があります。job_idしたがって、IDが123のジョブのapaper1.job_id123です。

paper1ここで、対応するがないすべてのジョブを確認したいと思いますpaper2(つまり、paper1paper2はジョブが満たされるための要件であるため、未完了です)。私の試みはこのようなものでしたが、正しく機能しませんでした:

SELECT id 
FROM   jobs 
WHERE  (SELECT id FROM paper1 WHERE (job_id = jobs.id) != 0 LIMIT 1) 
AND    (SELECT id FROM paper2 WHERE (job_id = jobs.id)  = NULL LIMIT 1)

どんな助けでもありがたいです。ありがとう。

4

3 に答える 3

1
select id 
from jobs 
where exists (select p1.id from paper1 as p1 where p1.job_id = jobs.id)
    and not exists (select p2.id from paper2 as p2 where p2.job_id = jobs.id)
于 2013-03-04T12:34:17.273 に答える
0

私の理解によれば、それが要件である場合は、paper1のみにあり、paper2には含まれていないジョブのみが必要であると思います。次に、以下のコードを試してください

select * from jobs where id in (select distinct j1 from 
(select a.job_id as j1,b.job_id as j2 from paper1 a,paper2 b where a.job_id=b.job_id(+)) 
where j2 is null)
于 2013-03-04T12:35:24.963 に答える
0

試す:

Select job_id 
FROM paper1 
WHERE job_id NOT IN (Select job_id from paper2 group by paper2)

GROUP BY job_id;
于 2013-03-05T07:56:04.130 に答える