Hej.
Jeg har et problem med en sql-forespørgsel i en mysql-database.
Jeg har tre databaser: en med produkter, en med tilbehør til produkterne,
og en database jeg bruger til at tilknytte tilbehøret til produkterne.
PRODUKTER
produkter_id PK
navn
tillæg
TILBEHØR
tilbehør_id PK
navn
pris
TILBEHØR_I_PRODUKTER
produkter_id
tilbehør_id
Jeg vil gerne sortere efter den samlede pris, som skal være summen af
prisen på alt tilknyttet tilbehør, og i nogle tilfælde skal et tillægsfelt
i produkter tilføjes til summen. Problemet er, at når jeg bruger
nedenstående sql-forespørgsel, så bliver tillægget tilføjet for hver
enkelt tilbehør, og jeg ville gerne have, at det kun blev tilføjet én gang
pr. produkt, uanset hvor meget tilbehør der måtte være. Der vil derudover
også være nogle tilfælde, hvor et produkt ikke indeholder noget tilbehør,
i det tilfælde skal den samlede pris selvfølgelig bare være indholdet af
tillægs-feltet.
Er det muligt?
SELECT p.navn, p.tillæg, SUM(t.pris+p.tillæg), t.pris
FROM produkter p
LEFT JOIN tilbehør_i_produkter tp
ON
p.produkter_id=tp.produkter_id
LEFT JOIN tilbehør t
ON tp.tilbehør_id=t.tilbehør_id
GROUP BY
p.produkter_id
ORDER BY SUM(t.pris+p.tillæg)