У меня есть 4 таблицы в базе данных MySQL, suppliers
, categories
, subcats
& listings
.Объединение нескольких строк MySQL без дубликатов
списки это объединение таблицы, чтобы позволить многие ко многим отношений между поставщиками, категориями и subcats, структура каждого из них следующим образом
поставщиков
sp_id sp_name sp_email
1 Apple [email protected]
2 Samsung [email protected]
категории
cat_id cat_name
3 Electronics
4 Software
подкаты
subcat_id subcat_name cat_id
5 Mobiles 3
6 Computers 3
объявления
list_id sp_id subcat_id
1 1 5
2 1 6
Я пытаюсь объединить и извлечь данные вместе с тем есть только одна запись в расчете на поставщика с несколькими подразделами перечислены например:
РЕЗУЛЬТАТ
sp_id sp_name sp_email cat_name/cats subcat_name/subcats
1 Apple [email protected] Electronics, Software Mobiles, Computers
2 Samsung [email protected] Electronics Mobiles
В настоящее время у меня есть следующий запрос
SELECT *
FROM suppliers as s
LEFT JOIN listings as l ON s.sp_id=l.sp_id
LEFT JOIN subcats as p ON p.subcat_id=l.subcat_id
LEFT JOIN categories as c ON c.cat_id=p.cat_id
ORDER BY s.sp_id
Однако это выводит несколько записей в поставщика, одну запись для каждой категории или подкатегории, связанные с ним. Есть ли более простой способ сделать это через SQL или с несколькими запросами в PHP?
Я нахожусь в пределах моих нынешних знаний о mySQL, и любые предложения или предложения в правильном направлении были бы весьма полезными.
Большое спасибо это работало безупречно, и я узнал кое-что. – themightyant