У меня есть три стола
Таблица_1: Транспортные средства
id name
-------
1 Honda
2 Ferrari
3 wagon
Таблица_2: extra_details
ID Detail
------------------------
1 GPS
2 CAMERA
3 Tracking System
Таблица_3: vehcile_extras
vehicle_id extra_detail_id
--------------------------
1 2
1 3
3 2
Теперь у одного транспортного средства может быть более 1 дополнительных вещей, таких как GPS, система слежения и т. Д. c, поэтому я создаю 1 дополнительную таблицу для хранения этих вещей с идентификатором транспортного средства и extra_detail_id. Я хочу получить данные обо всех транспортных средствах, если у некоторых транспортных средств есть дополнительная информация, я показываю те, которые разделены запятой, если не ноль Мой запрос
Мой запрос:
SELECT v.* , GROUP_CONCAT(e.name SEPARATOR ', ') as additional_details FROM vehicles v
left join vehcile_extras ve on ve.vehicle_id = v.id
left join extra_details e on FIND_IN_SET(ve.extra_detail_id, e.id)
Результат примерно такой,
id name additional_details
----------------------------------
1 Honda CAMERA,Tracking System
3 wagon CAMERA
Я хочу вот так
id name additional_details
----------------------------------
1 Honda CAMERA,Tracking System
2 Ferrari null
3 wagon CAMERA
я знаю, что могу добиться этого с помощью UNION ALL, но я хочу знать, есть ли другой способ получить все данные без объединения?