Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

selecione várias linhas em uma linha de resultado


Você pode usar GROUP_CONCAT() e GROUP BY para obter os resultados desejados:
SELECT t1.*, GROUP_CONCAT(t2.date) AS dates
FROM Table1 t1
LEFT JOIN Table2 t2
  ON t2.ID_adv = t1.ID_adv
GROUP BY t1.ID_adv

Isso retorna todas as datas de cada anúncio, concatenadas por vírgulas. Onde não houver datas na Tabela2 para um anúncio específico, você obterá NULL para a coluna de datas.

Para segmentar um anúncio específico, basta adicionar o WHERE cláusula:
SELECT t1.*, GROUP_CONCAT(t2.date) AS dates
FROM Table1 t1
LEFT JOIN Table2 t2
  ON t2.ID_adv = t1.ID_adv
WHERE t1.ID_adv = 3
GROUP BY t1.ID_adv