Gå til innhold

SQL: LEFT JOIN men kun nyeste fra høyre tabell...


Anbefalte innlegg

Jeg har to tabeller med en én-til-mange relasjon. La oss for enkelhets skyld si at tabell A har "id" (autonummer) og "verdi" (varchar), mens tabell B har "id" (autonummer), "idA" (fjernnøkkel), "tid" (datetime) og "verdi" (varchar).

 

Jeg ønsker å hente ut alle oppføringene i A som enten ikke har en tilhørende oppføring i B, eller har en eller flere oppføringer i B med verdiene "foo" eller "bar". Dersom det er flere oppføringer i B som tilhører elementet i A så ønsker jeg kun det elementet i B som har nyest dato.

 

Jeg har kommet fram til dette, men det virker ikke som jeg vil:

 

SELECT A.id AS id, A.verdi AS verdi, B.id AS idB, B.tid AS tid, B.verdi AS verdiB
FROM A LEFT JOIN B ON A.id = B.idA
WHERE (verdiB = 'foo' OR verdiB = 'bar')
ORDER BY tid

 

 

Noen forslag til hvordan jeg må endre denne for å få resultatet jeg er ute etter?

Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...