Как объединить запрос поиска, чтобы показать определенные определенные значения в то же время, как не показаны определенные c определенные значения? - PullRequest
0 голосов
/ 29 апреля 2020

Цель состоит в том, чтобы отфильтровать результаты поиска, чтобы результат отображал определенное значение и отфильтровывал другие нежелательные значения. Я думаю о комбинации между IN и NOT IN? По сути, в приведенном здесь примере цель состоит в том, чтобы извлечь курсы, которые преподавал Леннарт, но не Алан или Кьелл.

table bb
ccode             course                           name
---------------  ------------------------------  ------------------------------
TIG162           Affarssystem                    Kjell
TIG162           Affarssystem                    Kjell
TIG162           Affarssystem                    Kjell
TIG162           Affarssystem                    Lennart
TIG162           Affarssystem                    Lisen
TIG162           Affarssystem                    Lisen
TIG162           Affarssystem                    Lisen
TIG163           Beslutsstodsystem               Alan
TIG163           Beslutsstodsystem               Faramarz
TIG163           Beslutsstodsystem               Janne
TIG163           Beslutsstodsystem               Lennart
TIG163           Beslutsstodsystem               Alan
TIG163           Beslutsstodsystem               Faramarz
TIG163           Beslutsstodsystem               Lennart
TIG163           Beslutsstodsystem               Faramarz
TIG163           Beslutsstodsystem               Lennart
TIG163           Beslutsstodsystem               Maria
TIG163           Beslutsstodsystem               Lennart
TIG163           Beslutsstodsystem               Maria
TIG163           Beslutsstodsystem               Alan
TIG163           Beslutsstodsystem               Faramarz
TIG163           Beslutsstodsystem               Lennart
TIG067           Examensarbete                   Johan
TIG067           Examensarbete                   Kalle
TIG067           Examensarbete                   Magnus
TIA004           Forandringsledning              Janne
TIA004           Forandringsledning              Kalle
TIG167           Fordjupning i programmering     Dina
TIG167           Fordjupning i programmering     Janne
TIG167           Fordjupning i programmering     Henrik
TIG167           Fordjupning i programmering     Kjell
TIG167           Fordjupning i programmering     Henrik
TIG167           Fordjupning i programmering     Rikard
TIG167           Fordjupning i programmering     Henrik
TIG167           Fordjupning i programmering     Kjell
TIA008           IT - infrastruktur              Aida
TIG065           IT ledning styrning och strate  Kalle
TIG065           IT ledning styrning och strate  Aida
TIG065           IT ledning styrning och strate  Kalle
TIG065           IT ledning styrning och strate  Aida
TIG065           IT ledning styrning och strate  Kalle
TIG065           IT ledning styrning och strate  Aida
TIG165           Informatik som vetenskap        Alan
TIG165           Informatik som vetenskap        Lennart
TIG165           Informatik som vetenskap        William
TIG165           Informatik som vetenskap        Alan
TIG165           Informatik som vetenskap        Lennart
TIG165           Informatik som vetenskap        Lennart
TIG165           Informatik som vetenskap        Marie
TIG165           Informatik som vetenskap        Lennart
TIG165           Informatik som vetenskap        Marie
TIG066           Informatikhistoria och vetensk  Janne
TIG066           Informatikhistoria och vetensk  Janne
TIG066           Informatikhistoria och vetensk  Janne
TIG066           Informatikhistoria och vetensk  Janne
TIG066           Informatikhistoria och vetensk  Janne
TIG015           Informationsteknologi och info  Kalle
TIG015           Informationsteknologi och info  Kalle
TIG015           Informationsteknologi och info  Kalle
TIG015           Informationsteknologi och info  Kalle
TIG015           Informationsteknologi och info  Aida
TIG015           Informationsteknologi och info  Jonas
TIG015           Informationsteknologi och info  Kalle
TIG015           Informationsteknologi och info  Kjell
TIG015           Informationsteknologi och info  Magnus
TIG015           Informationsteknologi och info  Aida
TIG015           Informationsteknologi och info  Jonas
TIG015           Informationsteknologi och info  Kjell
TIG015           Informationsteknologi och info  Lennart
TIG015           Informationsteknologi och info  Maria
TIG015           Informationsteknologi och info  Urban
TIG063           Informationsteknologi och samh  Kjell
TIG063           Informationsteknologi och samh  Kjell
TIG063           Informationsteknologi och samh  Kjell
TIG063           Informationsteknologi och samh  Kjell
TIA015           Innovation och entreprenorskap  Lennart
TIA015           Innovation och entreprenorskap  Marie
TIA010           Innovationsstrategi             Juha
TIG164           Interaktionsdesign              Alan
TIG164           Interaktionsdesign              Juha
TIG164           Interaktionsdesign              Alan
TIG164           Interaktionsdesign              Juha
TIG164           Interaktionsdesign              Alan
TIG164           Interaktionsdesign              Juha
TIG164           Interaktionsdesign              Alan
TIG164           Interaktionsdesign              Alan
TIG061           Manniska datorinteraktion       Henrik
TIG061           Manniska datorinteraktion       Lennart
TIG061           Manniska datorinteraktion       Henrik
TIG061           Manniska datorinteraktion       Lennart
TIA019           Masteruppsats                   Janne
TIA019           Masteruppsats                   Lisen
TIA019           Masteruppsats                   Urban
TIG060           Organisationer och affarssyste  Fredrik
TIG060           Organisationer och affarssyste  Juha
TIG058           Programmeringsteknik och datab  Alan
TIG058           Programmeringsteknik och datab  Janne
TIG058           Programmeringsteknik och datab  Alan
TIG058           Programmeringsteknik och datab  Lennart
TIG058           Programmeringsteknik och datab  Lennart
TIG058           Programmeringsteknik och datab  Alan
TIG059           Systemutvecklingsprojekt        Dina
TIG059           Systemutvecklingsprojekt        Janne
TIG059           Systemutvecklingsprojekt        Dina
TIG059           Systemutvecklingsprojekt        Janne
TIG059           Systemutvecklingsprojekt        Alan
TIG059           Systemutvecklingsprojekt        Janne
TIG059           Systemutvecklingsprojekt        Kalle
TIG059           Systemutvecklingsprojekt        Lennart
TIG059           Systemutvecklingsprojekt        Alan
TIG059           Systemutvecklingsprojekt        Janne
TIG059           Systemutvecklingsprojekt        Kalle
TIG059           Systemutvecklingsprojekt        Lennart
TIG059           Systemutvecklingsprojekt        Alan
TIG059           Systemutvecklingsprojekt        Janne
TIG059           Systemutvecklingsprojekt        Kalle
TIG059           Systemutvecklingsprojekt        Lennart
TIG166           Tillampad IT management         Fredrik
TIG166           Tillampad IT management         Juha
TIG016           Verksamheter och information    Janne
TIG016           Verksamheter och information    Maria
TIG016           Verksamheter och information    Janne
TIG016           Verksamheter och information    Kalle
TIG016           Verksamheter och information    Maria
TIG016           Verksamheter och information    Janne
TIG016           Verksamheter och information    Kalle
TIG016           Verksamheter och information    Janne
TIG016           Verksamheter och information    Kalle
TIA003           Verksamhetsutveckling           Dina
TIA003           Verksamhetsutveckling           Aida
TIA003           Verksamhetsutveckling           Dina
TIA003           Verksamhetsutveckling           Aida
TIA003           Verksamhetsutveckling           Dina
TIA003           Verksamhetsutveckling           Aida
TIA003           Verksamhetsutveckling           Dina
TIA003           Verksamhetsutveckling           Aida
TIG098           eBusiness and eGovernment       Agneta
TIG098           eBusiness and eGovernment       Lisen

Найденные кортежи должны быть: picture of desired result

Есть предложения о том, как должен выглядеть запрос?

Ответы [ 3 ]

1 голос
/ 29 апреля 2020

С NOT EXISTS:

select distinct t.course from tablename t
where name = 'Lennart'
and not exists (select 1 from tablename where course = t.course and name in ('Alan', 'Kjell')); 

Если вы хотите использовать IN, то это самый простой способ:

select distinct course from tablename 
where name = 'Lennart'
and course not in (select course from tablename where name in ('Alan','Kjell'));
1 голос
/ 29 апреля 2020

Другой подход с использованием in и not in

select distinct course from table 
where 
   name = 'Lennart'
   and 
   course not in (select course from table where name in ('Alan','Kjeli');
1 голос
/ 29 апреля 2020

Вы можете использовать условное агрегирование:

select knamn
from t
group by knamn
having sum(namn = 'Lennart') > 0 and
       sum(namn = 'Alan') = 0 and
       sum(namn = 'Kjeli') = 0 ;

Возможно, будет немного эффективнее фильтровать перед агрегацией, в этом случае вы можете просто использовать:

select knamn
from t
where namn in ('Lennart', 'Alan', 'Kjeli')
group by knamn
having min(namn) = max(namn) and min(namn) = 'Lennart';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...