![](/img/trans.png)
[英]SQL subquery , using WHERE & 'IN' to filter for specific rows
[英]SQL Subquery: Filter entries that return no rows
我正在努力進行SQL查詢...我有三個表:
1)職位
2)論文1
3)紙2
paper1
和paper2
有科拉姆job_id
其中相應的作業ID被引用; 因此ID為123的作業的paper1.job_id
為123 。
現在,我希望看到有一個相應的所有作業paper1
但沒有paper2
(因此:未完成的,因為paper1和paper2是這個職位的要求得到滿足)。 我的嘗試是這樣的,但是沒有正確解決:
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.