/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MySQL: 'SELECT b.noget-med-en-sammensat-st~
Fra : Jesper H


Dato : 11-10-06 07:50

Hej gruppe

Jeg har lavet et nyhedssystem, som baserer sig på en tabel med
nyheder, og en tabel med vedhæftede filer. Koblet således, at
tabellen med vedhæftede filer har en kolonne kaldet parentid, som
henviser til nyhedstabellens id-kolonne.

Når jeg laver en oversigt over nyhederne, har jeg lavet det sådan, at
jeg kan se hvor mange filer der er vedhæftet hver enkelt nyhed:
'SELECT a.*, COUNT(b.id) AS antalfiler FROM nyheder AS a LEFT JOIN
filer AS b ON a.id = b.parentid GROUP BY a.id ORDER BY a.id ASC;'
(eller noget i den retning i alt fald)

Nu kunne jeg så godt tænke mig at lave oversigten, så man kan se
filnavnene, der er vedhæftet de enkelte nyheder. Men jeg synes måske
det er en smule uoptimalt først at lave et query efter alle nyhederne,
og bagefter lave et query for hver nyhed for at finde filnavnene. Så
jeg havde håbet at man kunne lavet noget i retning af:

'SELECT a.*, SAMMENSÆTNING_AF_FELTINDHOLD(b.filnnavn, ", ") FROM
nyheder AS a LEFT JOIN filer AS b ON a.id = b.parentid GROUP BY a.id
ORDER BY a.id ASC;'
Men findes en sådan funktion i MySQL? Har ikke kunnet finde noget på
Google, som lige passede...

Mvh
Jesper
--
http://fdf.dk/landsdel1/ , http://www.tandklinikken-vesterbro.dk/


 
 
Thorkil Olesen (22-10-2006)
Kommentar
Fra : Thorkil Olesen


Dato : 22-10-06 16:49

Det her er et svar på et gammelt indlæg, men da ingen har svaret på det,
så...

Jesper H <jesper.haukrogh@gmail.com> wrote:

> jeg havde håbet at man kunne lavet noget i retning af:
>
> 'SELECT a.*, SAMMENSÆTNING_AF_FELTINDHOLD(b.filnnavn, ", ") FROM
> nyheder AS a LEFT JOIN filer AS b ON a.id = b.parentid GROUP BY a.id
> ORDER BY a.id ASC;'

Det kan du netop. Funktionen hedder GROUP_CONCAT og optræder første gang
i MySQL 4.1. Find syntaksen i manualen.

--
Thorkil Olesen,
Hanstholm.

Jesper H (22-10-2006)
Kommentar
Fra : Jesper H


Dato : 22-10-06 20:37


Thorkil Olesen skrev:
> Det her er et svar på et gammelt indlæg, men da ingen har svaret på det,
> så...
>
> Jesper H <jesper.haukrogh@gmail.com> wrote:
>
> > jeg havde håbet at man kunne lavet noget i retning af:
> >
> > 'SELECT a.*, SAMMENSÆTNING_AF_FELTINDHOLD(b.filnnavn, ", ") FROM
> > nyheder AS a LEFT JOIN filer AS b ON a.id = b.parentid GROUP BY a.id
> > ORDER BY a.id ASC;'
>
> Det kan du netop. Funktionen hedder GROUP_CONCAT og optræder første gang
> i MySQL 4.1. Find syntaksen i manualen.
>
> --
> Thorkil Olesen,
> Hanstholm.

Hej Thorkil

Tak for det, det var lige sådan en funktion jeg ledte efter - kiggede
i dokumentationen, og den kan præcis det jeg eftersøger

Takker for hjælpen

Mvh
Jesper
--
http://fdf.dk/landsdel1/ , http://www.tandklinikken-vesterbro.dk/


Søg
Reklame
Statistik
Spørgsmål : 177455
Tips : 31962
Nyheder : 719565
Indlæg : 6408149
Brugere : 218880

Månedens bedste
Årets bedste
Sidste års bedste