Morten wrote:
>
> Hej, nogen der kan give en forklaring på duplikaterne der kommer i denne
> query:
>
>
http://pastie.caboo.se/112881
>
> Umiddelbart gætter jeg at MySQL har lidt problemer med flere
> GROUP_CONCAT i samme query.
Det tror jeg ikke. Du har lavet krydsproduktet imellem følgende to mænger:
{A, L} og {C, P}. Det giver:
(A,C)
(A,P)
(L,C)
(L,P)
Når man så bruger group_concat, gør den ikke andet end at sætte
værdierne sammen:
"AALL", "CPCP".
Det virker præcis som det skal. For at opnæ det du ønsker, kan du f.
eks. bruge subselects i stedet for:
SELECT men.id,
(SELECT GROUP_CONCAT(name SEPARATOR ' ')
FROM sodas WHERE sodas.man_id = id),
(SELECT GROUP_CONCAT(beers.name SEPARATOR ' ')
FROM sodas WHERE beers.man_id = id)
FROM men
....og så håber jeg iøvrigt at beers og sodas er eksempler og ikke noget
du vil bygge videre på, idet de ikke se forskellige nok ud til at de med
rette kan stoppes i forskellige tabeller.
Mvh. Michael.