我有2个表,我试图获取表1,其中包含Job_ID,但尚未完成表2中的进度。 表1. [工作]
1410 | A
2309 | B
3456 | C
表2。[进度]
1410 | 10
1410 | 50
1410 | 60
2309 | 50
2309 | 100
3456 | 100
预期:
1410 | A
我的SQL查询是:
SELECT FROM Job,(SELECT DISTINCT * FROM Progress
WHERE Percent<100) AS PGR
WHERE Job.Job_ID = PGR.Job_ID
但是我还是得到这个
1410 | A
2309 | B
我的逻辑仅获得百分比<100的Job_ID,但是我在stackoverflow中找不到SQL的特定方式。在这种情况下,请帮助我。
答案 0 :(得分:1)
您可以从查询下面获取帮助。
SELECT *
FROM table1 a
WHERE NOT EXISTS (SELECT 1 FROM table2 b WHERE a.job_id = b.job_id and percentage = 100)
答案 1 :(得分:0)
不存在
select
a.* from job a
where not exists (select 1 from progres b
where a.job_id =b.job_id and b.Percent=100
)
答案 2 :(得分:0)
使用LEFT JOIN
和NULL
检查吗?
SELECT T1.JobID, T2.GroupID
FROM Table1 T1
LEFT JOIN T2 ON T1.JobID = T2.JobId
AND T2.Percent = 100
WHERE T2.JobID IS NULL;
答案 3 :(得分:-1)
尝试一下
select
job.*
from
job
where
not exists (select 1 from progres where progres.job_id =job.job_id)