首页 > 解决方案 > 如何组合查询搜索以显示某些定义的值,同时不显示特定的定义值?

问题描述

目标是过滤掉搜索结果,以便结果显示某个值并过滤掉其他不需要的值。我正在考虑 IN 和 NOT IN 之间的组合?基本上,在此处提供的示例中,目标是检索 Lennart 教授的课程,但不是 Alan 或 Kjell。

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

检索到的元组应该是: 期望结果的图片

关于查询应该是什么样子的任何建议?

标签: sqlsqlite

解决方案


您可以使用条件聚合:

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';

推荐阅读