簡體   English   中英

SQL子查詢:篩選不返回任何行的條目

[英]SQL Subquery: Filter entries that return no rows

我正在努力進行SQL查詢...我有三個表:

1)職位

2)論文1

3)紙2

paper1paper2有科拉姆job_id其中相應的作業ID被引用; 因此ID為123的作業的paper1.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)

任何幫助表示贊賞; 謝謝。

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)

根據我的理解,我認為您只需要僅在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)

嘗試:

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

GROUP BY job_id;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM