Выберите только таблицу, которая не соответствует определенным условиям - PullRequest
0 голосов
/ 22 марта 2019

У меня есть 2 таблицы, и я попытался получить таблицу 1, которая содержит Job_ID, который не завершил прогресс в таблице 2. Таблица 1. [Работа]

Job_ID (ключ) | GroupID

1410        |    A  
2309        |    B  
3456        |    C  

Таблица 2. [Прогресс]

Job_ID | Процент

1410        |    10
1410        |    50
1410        |    60
2309        |    50
2309        |    100
3456        |    100

Ожидаемое:

Job_ID (ключ) | GroupID

1410        |    A  

Мой SQL-запрос:

SELECT FROM Job,(SELECT DISTINCT * FROM Progress WHERE Percent<100) AS PGR WHERE Job.Job_ID = PGR.Job_ID

Но я все еще получаю это

Job_ID (ключ) | GroupID

1410        |    A  
2309        |    B  

Моя логика получала только Job_ID с процентами <100, но мне не удалось найти конкретный путь в SQL в stackoverflow. Пожалуйста, помогите мне в этом случае. </p>

Ответы [ 4 ]

1 голос
/ 22 марта 2019

Вы можете получить помощь снизу. Запрос.

SELECT * 
FROM table1 a
WHERE NOT EXISTS (SELECT 1 FROM table2 b WHERE a.job_id = b.job_id and percentage = 100)
0 голосов
/ 22 марта 2019

Использовать 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;
0 голосов
/ 22 марта 2019

использование не существует

select
    a.* from job a   
   where not exists (select 1 from progres b 
                      where a.job_id =b.job_id and b.Percent=100
                    )
0 голосов
/ 22 марта 2019

Попробуйте это

 select
    job.*
    from
    job

    where 
not exists (select 1 from progres where progres.job_id =job.job_id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...