17. juni 2007 - 17:44Der er
3 kommentarer og 2 løsninger
SQL-sætning med udelukkelse
SELECT tab1.v1 FROM tab1, tab2 WHERE tab1.v1=tab2.v1 AND tab1.v2=2 AND NOT ( tab1.v3=tab2.v3 AND tab1.v4=4 )
Spørgsmålet er om man kan lave et sådan udtryk på en eller anden måde - altså: Find alle poster som lever op til udtryk 1 og 2, men udeluk de poster som lever op til udtryk 3 og 4.
1: SELECT tab1.v1 FROM tab1, tab2 WHERE tab1.v1=tab2.v1 AND tab1.v2=2 2: SELECT tab1.v1 FROM tab1, tab2 WHERE tab1.v3=tab2.v3 AND tab1.v4=4
Det jeg egentlig gerne vil er at få udtræk 1's poster minus udtræk 2's poster.
Som jeg ser dit første eksempel, så er parentesen overflødig og i dit andet eksempel bliver det hvis det ene eller andet ikke gør sig gældende i stedet for hvis IKKE det ene og det andet gør sig gældende, hvilket som jeg lige kan gennemskue det ikke er det jeg ønsker (og som forøvrigt ikke giver det ønskede resultat når jeg afprøver det).
Hmm fandt en løsning med en subselect - noget i stil med:
SELECT tab1.v1 FROM tab1, tab2 WHERE tab1.v1=tab2.v1 AND tab1.v2=2 AND tab1.v1 NOT IN ( SELECT tab1.v1 FROM tab1,tab2 WHERE tab1.v3=tab2.v3 AND tab1.v4=4 )
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.