Mysql
 sql >> база данни >  >> RDS >> Mysql

Комбинирайте няколко реда в едно MySQL Join

Можете да използвате GROUP_CONCAT, за да комбинирате всички крайни идентификатори за дадена част в една колона.

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:Ако обаче искате да запазите редовете от pj_items разделени, ще трябва да се присъедините към PartFinishes, които вече са групирани по 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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Конкатениране на низ със стойност на полето в MySQL

  2. mysql_num_rows() очаква параметър 1 да бъде ресурс, като е дадено булево

  3. Защо тази Hibernate MySQL връзка е само за четене?

  4. Търсене в масив от публикации в стойност на колона, разделена със запетая

  5. Различен подход за използване на клауза IN в MySql