Ik ben nu al enkele uren aan het stoeien met een query en ik kom er echt niet uit. Zowel op google als hier kon ik het antwoord niet echt vinden, terwijl het me niet zo heel moeilijk lijkt.
De situatie is als volgt:
Ik heb 2 tabellen:
en
In de tweede tabel staan nog wel wat velden, maar die doen niet ter zake.
Ik wil graag een lijstje krijgen waarin van ieder ObjID met 1 FotoUrl verschijnt.
Wanneer ik deze query uitvoer:
Krijg ik een overzicht van alle objecten maar de objecten welke meerdere foto's hebben komen dan ook meerdere malen voor.
Het is de bedoeling dat alle objecten getoond worden (of ze nu foto's bevatten of niet), en die objecten die foto's bevatten moeten alleen de eerste foto tonen (waarbij Fotos.FotoStart dus true is).
Bij de objecten die dan geen foto's bevatten moet een plaatje komen dat er geen foto's beschikbaar zijn (in de FotoUrl kolom een nopicture.jpg waarde o.i.d.)
Als ik deze query probeer:
Krijg ik alleen de objecten terug die wel een foto bevatten.
Hoe ik ook bezig ga met joins en distincts, ik kom er niet uit.
Kunnen jullie me een duwtje in de goede richting geven?
P.s. het gaat over MS SQL Server 2000
De situatie is als volgt:
Ik heb 2 tabellen:
code:
1
2
3
4
5
6
| Fotos --------------------------------- FotoID int FotoUrl varchar(150) FotoObjID smallint FotoStart bit |
en
code:
1
2
3
4
| Objecten --------------------------------- ObjID smallint ObjAdres varchar(100) |
In de tweede tabel staan nog wel wat velden, maar die doen niet ter zake.
Ik wil graag een lijstje krijgen waarin van ieder ObjID met 1 FotoUrl verschijnt.
Wanneer ik deze query uitvoer:
code:
1
2
3
| SELECT Objecten.ObjID, Fotos.FotoUrl
FROM Objecten LEFT OUTER JOIN
Fotos ON Objecten.ObjID = Fotos.FotoObjID |
Krijg ik een overzicht van alle objecten maar de objecten welke meerdere foto's hebben komen dan ook meerdere malen voor.
Het is de bedoeling dat alle objecten getoond worden (of ze nu foto's bevatten of niet), en die objecten die foto's bevatten moeten alleen de eerste foto tonen (waarbij Fotos.FotoStart dus true is).
Bij de objecten die dan geen foto's bevatten moet een plaatje komen dat er geen foto's beschikbaar zijn (in de FotoUrl kolom een nopicture.jpg waarde o.i.d.)
Als ik deze query probeer:
code:
1
2
3
4
| SELECT Objecten.ObjID, Fotos.FotoUrl
FROM Objecten LEFT OUTER JOIN
Fotos ON Objecten.ObjID = Fotos.FotoObjID
WHERE (Fotos.FotoStart = 1) |
Krijg ik alleen de objecten terug die wel een foto bevatten.
Hoe ik ook bezig ga met joins en distincts, ik kom er niet uit.
Kunnen jullie me een duwtje in de goede richting geven?
P.s. het gaat over MS SQL Server 2000
[ Voor 3% gewijzigd door Giblet op 05-01-2006 17:35 ]