Jeg skal have trukket ALLE poster ud af Tabel1 og joinet ID2 på tværs af tabellerne. Intet problem:
Select Tabel1.ID1, Tabel1.ID2 From Tabel1 Left Join Tabel2 On Tabel1.ID2 = Tabel2.ID2
Men jeg er nødt til at have puttet en Where-clause ind i join-operationen, således at ALLE poster i Tabel2, hvor ID3 ikke er lig med fx. 8 filtreres fra.
Gør jeg det, filtrerer jeg samtidig også nogle af posterne i Tabel1 fra, hvilket ikke må ske.
Idéen med det hele er, at jeg kan løbe Tabel1 helt i gennem og for hver post deri spørge, om der findes en relateret post i Tabel2, hvor ID3 = 8. Er der ikke det, vil den ikke-eksistrende post jo returnere Null.
Ja, det er muligt, du er inde på noget af det rigtige der, hossein, men så skal der vist også en group by på.
bertie --> Meningen er, at jeg skal kunne tjekke for relaterede poster i Tabel2, mens jeg spoler recordsættet igennem. Jeg skal ikke bruge nogle deciderede oplysninger fra Tabel2, da den kun rummer to kolonner med fremmednøgler. Det her kunne blive en meget lang historie, men kort sagt skal jeg blot tjekke på eksistensen af udvalgte fremmednøgler, mens jeg løber de primære igennem.
Synes godt om
Slettet bruger
27. april 2003 - 18:36#9
Tja måske du skal have fat i noget outer join, prøv evt med: Select Tabel1.ID1, Tabel1.ID2 From Tabel1 Left Outer Join Tabel2 On Tabel1.ID2 = Tabel2.ID2 and Tabel2.id3 = 8
hossein ---> Der var jeg vist lidt for hurtig. Din SQL giver mig jo kun poster fra Tabel1, hvis der findes relaterede i Tabel2, og altså ikke dem alle i Tabel1...
Jeg mener det er en generel egenskab ved SQL at man ikke umiddelbart kan lave et betinget left join. Dog kan man komme igennem uden en fysisk temp tabel, i det man på forespørgselstidspunktet kan oprette en virtuel temptabel som man så skal navngive. Se eksemplet nedenunder som jeg har testet i Access.
Mvh. Jesper
SELECT Table1.Name, Table1.Id, Table2.Id3 AS Expr1 FROM Table1 LEFT JOIN [SELECT * FROM Table2 WHERE ID3 = 8]. AS QTable2 ON Table1.Id = QTable2.Id2;
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.