Search code examples
mysqldatabasegroup-concat

MYSQL GROUP_CONCAT INCLUDE NULL


I use this code to group the equipment, but when the id_material has no equipment the id_material didn't show.

select
material.id_material, 
material.mat_part_number, 
group_concat(distinct equipment.equipment_name order by equipment.equipment_name separator ', ') as equipment    
FROM material   
INNER JOIN equipment_list ON material.id_material=equipment_list.PKid_material INNER JOIN equipment ON equipment_list.PKid_equipment=equipment.id_equipment group by id_material;

i want it to appear like this

+-------------+----------------+
| id_material | equipment      |                                                             
+-------------+----------------+
|     1000001 | eq1            |         
|     1000002 | eq1, eq2       |
|     1000003 | eq3            |
|     1000004 |                |                           
+-------------+----------------+

but it only appear this

+-------------+----------------+
| id_material | equipment      |                                                             
+-------------+----------------+
|     1000001 | eq1            |         
|     1000002 | eq1, eq2       |
|     1000003 | eq3            |                        
+-------------+----------------+

where should i put the NULL condition?


Solution

  • I just modified your query, this might help you.

    SELECT 
      material.id_material, 
      material.mat_part_number, 
      GROUP_CONCAT(
        DISTINCT equipment.equipment_name 
        ORDER BY 
          equipment.equipment_name SEPARATOR ', '
      ) AS equipment 
    FROM 
      material 
      LEFT JOIN equipment_list ON material.id_material = equipment_list.PKid_material 
      LEFT JOIN equipment ON equipment_list.PKid_equipment = equipment.id_equipment 
    GROUP BY 
      id_material;