Mysql
 sql >> Base de données >  >> RDS >> Mysql

Combinez plusieurs lignes en une jointure MySQL

Vous pouvez utiliser GROUP_CONCAT pour combiner tous les ID de finition pour une pièce donnée dans une colonne.

SELECT pj_items.part_num, 
       pj_items.qty, 
       GROUP_CONCAT(PartFinishes.FinishId) as FinishIds
FROM pj_items
JOIN PartFinishes 
  ON PartFinishes.PartNumber = pj_items.part_num
WHERE job_id = 1
GROUP BY PartFinishes.PartNumber

@comment : Cependant, si vous souhaitez conserver les lignes de pj_items séparées, vous devrez joindre PartFinishes déjà regroupées par PartNumber :

SELECT pj_items.part_num, 
   pj_items.qty, 
   FinishesGrouped.FinishIds
FROM pj_items
JOIN 
  ( SELECT PartNumber, GROUP_CONCAT(FinishId) as FinishIds
    FROM PartFinishes
    GROUP BY PartNumber ) FinishesGrouped
ON
  pj_items.part_num = FinishesGrouped.PartNumber