SQL Присоединение к другой таблице с условием - PullRequest
0 голосов
/ 02 октября 2019

У меня есть две таблицы, приведенные ниже.

service table

serviceid      serviceName     title   isrestricted
---           --------------  ------  ----------
1                  abc          t1     0
2                  asd          t2     1
3                  def          t3     0


serviceRestricted table

sampletype   serviceid
--------     ---------
a            2


output

 serviceid      serviceName     title   isrestricted
    ---           --------------  ------  ----------
    1                  abc          t1     0   
    3                  def          t3     0

См. Вывод. Для идентификатора службы 2 isrestricted = 1, и в таблице служб есть запись. Таким образом, serviceid 2 не отображается в выводе

Ответы [ 2 ]

0 голосов
/ 03 октября 2019

Я могу добиться этого по запросу ниже

select S.serviceid,S.serviceName,S.title,S.isrestricted
from service S
WHERE
((S.IsRestricted =1 and S.serviceid NOT IN (SELECT SERVICEID FROM servicerestricted WHERE SampleType=@SampleType) ) 
OR (S.IsRestricted is null OR S.isrestricted =0))
0 голосов
/ 02 октября 2019

Left Join должен решить вашу проблему как:

select S.serviceid,S.serviceName,S.title,S.isrestricted
from @service S
Left Join @serviceRestricted SR on SR.serviceid = S.serviceid
where S.isrestricted = 1

Пример кода здесь ..

...