Avatar billede trine_h Nybegynder
22. november 2005 - 13:48 Der er 4 kommentarer og
1 løsning

hente distinkte rækker

Hej - jeg vil gerne begrænse søgeresultatet til de rækker som har et unikt itemId men samtidig vil jeg gerne have returneret pictureUrl og pictureAlt (men de skal ikke være distinkte)

Hvordan gør jeg det? nedenstående virker ikke - her henter den alle de poster hvor både itemid, pictureurl og pictureAlt tilsammen er unikke

SELECT DISTINCT itemId, pictureUrl, pictureAlt
FROM SCAdvPageContentPicture
Avatar billede jim_marius Nybegynder
22. november 2005 - 15:59 #1
Kan du ikke anvende Group By istedet for ?
Avatar billede arne_v Ekspert
22. november 2005 - 19:13 #2
dit ønske er jo ikke entydigt

1 a b
1 c d

skal det give

1 a b

eller

1 c d

eller ?

Hvis du er ligeglad kan du bruge

SELECT DISTINCT itemId, MAX(pictureUrl), MAX(pictureAlt)
FROM SCAdvPageContentPicture
GROUP BY itemId

eller

SELECT DISTINCT itemId, MIN(pictureUrl), MIN(pictureAlt)
FROM SCAdvPageContentPicture
GROUP BY itemId

hvis du vil have nogle andre værdier ud for de 2 felter så må du definere
hvordan de værdier skal udvælges
Avatar billede trine_h Nybegynder
23. november 2005 - 08:04 #3
Min sql var lidt forkert formuleret - jeg har en 1 - mange struktur imellem en "item" tabel og en "picture" tabel - et item kan have flere billeder - det jeg så gerne vil gøre er at hente de 4 nyeste billeder som er lagt ind i "picture" tabellen - men fra 4 forskellige items -
SELECT TOP 4 pictureUrl FROM SCAdvPageContentPicture
INNER JOIN SCAdvPageContentItem ON (SCAdvPageContentPicture.itemId = SCAdvPageContentItem.itemId)
order by SCAdvPageContentPicture.itemId DESC

følgende henter de 4 nyeste billeder men problemet er at det kan være de 4 nyeste billeder af samme "item" - jeg skal altså have fundet 4 billeder fra 4 unikke items - derfor forsøgte jeg mig med "DISTINCT"
Avatar billede trine_h Nybegynder
23. november 2005 - 13:04 #4
SELECT    TOP 4 *
FROM        SCAdvPageContentItem
WHERE    (itemId IN
                          (SELECT DISTINCT itemId
                            FROM          ScAdvPageContentPicture))
ORDER BY itemId DESC


fandt selv løsningen
Avatar billede trine_h Nybegynder
23. november 2005 - 13:04 #5
svar
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