我有这个问题:
SELECT
projetos.id_projeto,
projetos.projeto AS projeto,
projetos.descricao AS descricao,
projetos.thumb,
GROUP_CONCAT(imagens.imagem ORDER BY imagens.ordem ASC) AS imagens,
GROUP_CONCAT(imagens.largura ORDER BY imagens.ordem ASC) AS larguras,
GROUP_CONCAT(imagens.altura ORDER BY imagens.ordem ASC) AS alturas,
GROUP_CONCAT(premios.id_premio) AS premio
FROM projetos
JOIN imagens ON projetos.id_projeto = imagens.id_projeto
JOIN premios ON premios.id_projeto = projetos.id_projeto
WHERE projetos.id_projeto = 44
GROUP BY projetos.id_projeto
但它重复了图像,larguras,alturas和premio内容。
我尝试在GROUP_CONCAT中使用DISTINCT
。但是有些宽度值相等,每张图像需要一个宽度。
答案 0 :(得分:1)
SELECT
projetos.id_projeto,
projetos.projeto AS projeto,
projetos.descricao AS descricao,
projetos.thumb,
imgs.*,
prem.premio
FROM projetos
JOIN (
SELECT id_projeto,
GROUP_CONCAT(imagem ) AS imagens,
GROUP_CONCAT(largura ) AS larguras,
GROUP_CONCAT(altura ) AS alturas
FROM imagens
GROUP BY id_projeto
) imgs ON projetos.id_projeto = imgs.id_projeto
JOIN (
SELECT id_projeto,
GROUP_CONCAT(premios.id_premio) AS premio
FROM premios
GROUP BY id_projeto
) as prem ON prem.id_projeto = projetos.id_projeto
WHERE projetos.id_projeto = 44
GROUP BY projetos.id_projeto ;