webForumDet fria alternativet

Hämta unika ur dubletta poster

Databaser & SQL

4 svar · 359 visningar · startad av Vide

Medlem sedan dec. 19998 577 inlägg
Frågan#1

Tjenare,

Jag har ett lite klurigt problem:
Jag har ett antal poster. Jag har frågenummer (qid), och ett gruppnummer (sgid, default värde: -1). I de flesta fall är qid unikt, men det finns fall där qid dubblas, i dessa fall har sgid ett nytt (högre än -1) nummer (t.ex 10 i detta fallet).

I dessa fall vill jag bara ha med den posten som har sgid=10, den med sgid=-1 skall inte vara med.

Nu har jag denna koden, men problemet är såklart att jag inte kan använda max(id) eftersom det är en autoincrementerande kolumn, och posterna läggs inte alltid till i rätt ordning.

Nuvarande kod:

SELECT     *
FROM         p5027_cfg_questions
WHERE     (id IN
                          (SELECT     MAX(id)
                            FROM          p5027_cfg_questions
                            WHERE      sgid IN (- 1, 10)
                            GROUP BY qid)) AND (active = 1)
ORDER BY qid

Jag förklarar gärna närmare om det är oklart... :)

Mvh, Vide

Medlem sedan dec. 200012 464 inlägg
#2
SELECT     *
FROM         p5027_cfg_questions as q
WHERE  sgid IN (
   SELECT     MAX(sgid)
       FROM    p5027_cfg_questions
      WHERE  qid = q.qid
)
 AND (active = 1)
ORDER BY qid
Medlem sedan dec. 19998 577 inlägg
#3

Det är bara att tacka... :D

Medlem sedan juni 200032 967 inlägg
#4

Vide skrev:

Det är bara att tacka... :D

Nej, inte bara.

Du skall använda "Acceptera som slutgiltigt svar" också. ;)

Mvh

Medlem sedan dec. 19998 577 inlägg
#5

Jag vet, jag är gammalmodig... väldigt modig... =)

257 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)