Hej! Du kan inta bara ha en join.Problem med Innerjoin
Jag har 2 tabeller ur vilka jag vill loopa ut information. En "Projects" och en "ProjectPics". I Projects innehåller varje record ett unikt projekt, och dessa vill ja loopa ut, dock vill jag att en bild ska knytas till varje projekt. Notera bara EN bild. Dessa bilder finns i ProjectPics, och det kan alltså finnas flera bilder till samma projekt.
Den SQL-saten ja knåpat ihop hämtar alla bilder till alla projekt, men, som ja sa innan, jag vill bara ha en bild per projekt.
Tillägas bör kanske att sidan bara ska hämta projekt ur en specifik kategori ("ProjectCatId" - se nedan)
Hoppas ni hänger med här :)
Så här ser min sql ut:
SelectCommand="SELECT DISTINCT Projects.ProjectId, Projects.Headline, Projects.DateTime, ProjectPictures.FileName FROM Projects INNER JOIN ProjectPictures ON Projects.ProjectId = ProjectPictures.ProjectId WHERE (Projects.ProjectCatId = @ProjectCatId) "
Jag skriver i asp.net (vb)
Tack på förhand!
/GoliatSv: Problem med Innerjoin
Antingen får du göra en join mot et urval där du begränsat så att det bara finns en bild per projekt:
SELECT Projects.ProjectId, Projects.Headline, Projects.DateTime, x.FileName
FROM Projects INNER JOIN
(SELECT ProjectPictures.ProjectId, MIN(ProjectPictures.FileName) AS FileName
FROM ProjectPictures
GROUP BY ProjectPictures.ProjectId) AS x ON Projects.ProjectId = x.ProjectId
WHERE (Projects.ProjectCatId = @ProjectCatId)
eller ha en underfråga som hämtar en bild per projekt:
SELECT Projects.ProjectId, Projects.Headline, Projects.DateTime,
(SELECT MIN(ProjectPictures.FileName) AS FileName
FROM ProjectPictures
WHERE ProjectPictures.ProjectId = Projects.ProjectId) AS FileName
FROM Projects
WHERE (Projects.ProjectCatId = @ProjectCatId)