Avatar billede davidfossil Nybegynder
09. september 2004 - 14:17 Der er 5 kommentarer og
1 løsning

Problemer med et JOIN

Jeg har et SQL-problem, som jeg ikke lige selv kan greje. Vil prøve at forklare det:

Fra tabel A vil jeg hente alle rækker der opfylder nogle bestemte krav (WHERE). Gennem et join (LEFT JOIN forestiller jeg mig) til tabel B vil jeg finde den maximale værdi for et felt (MAX), men i tabel B skal der også opfyldes visse betingelser (WHERE?).

Sætter jeg det sidste som et WHERE clause får jeg ikke de rækker fra A hvor der ingen matchende rækker er i B ... selvom det er et LEFT JOIN... Skal jeg måske bruge HAVING?

Måske er jeg bare dum eller blind - HJÆLP!
Avatar billede arne_v Ekspert
09. september 2004 - 14:21 #1
Prøv noget a la:

SELECT * FROM a LEFT JOIN b ON a.f1=b.f1 WHERE a.f2=x AND (b.f3=y OR b.f3 IS NULL)
Avatar billede davidfossil Nybegynder
09. september 2004 - 15:38 #2
Nope - andre bud?
Avatar billede arne_v Ekspert
09. september 2004 - 19:57 #3
Kan du beskrive lidt nærmere hvad du vil evt. med et lille data eksempel ?
Avatar billede davidfossil Nybegynder
09. september 2004 - 20:59 #4
Jeg har forsøgt at simplificere tabellerne for at gøre det mere overskueligt:

********************************
tblPosts
-----------------------------
postID
postTitle
sectionID
********************************

og

********************************
tblPostsRead
-----------------------------
postID
userID
readDateTime
********************************

Nu vil jeg gerne (med ét SQL-kald) have en liste over alle rækker fra tblPosts, samt den eventuelle værdi for tblPostsRead.readDateTime tilknyttet...

Dit forslag fra før vil altså se ud som følger:

SELECT tblPosts.*, tblPostsRead.readDateTime FROM tblPosts LEFT JOIN tblPostsRead ON tblPosts.postID=tblPostsRead.postID WHERE tblPosts.sectionID='K' AND (tblPostsRead.userID=15 OR tblPostsRead.userID IS NULL)

Håber at dette kan hjælpe nogen på sporet :)
Avatar billede davidfossil Nybegynder
22. november 2004 - 16:07 #5
kom så arne - jeg ved du kan :)
Avatar billede davidfossil Nybegynder
10. januar 2005 - 09:26 #6
lukkes
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester