Это должно быть легко для вас, но я потерялся здесь:
У меня есть база данных с 4 таблицами: заказы, клиенты, продукты, orders_products
Мне нужно выбрать всех клиентов со всеми их заказами, , включая тех, у которых нет заказов.
Я получаю только тех, кто сделал заказ. Бедный старый «Ник» в таблице «Клиенты» не появится.
Что я здесь не так делаю?
SELECT c.name clientname, o.id orderID, GROUP_CONCAT(p.name) productNAMEs,
GROUP_CONCAT(p.id) productIDs
FROM clients c, orders o, orders_products op, products p
WHERE c.id = o.client_id
AND c.status = 1
AND o.id = op.order_id
AND p.id = op.product_id
GROUP BY c.name
См. Определения таблиц здесь:
https://www.db -fiddle.com / ж / bTRSLfYTa19S2EpE2zKwUv / 7
Спасибо за ваше время.
ОБНОВЛЕНИЕ: @scaisedge предложил ответ, включающий клиентов без заказов:
SELECT c.name clientname, o.id orderID, GROUP_CONCAT(p.name) productNAMEs,
GROUP_CONCAT(p.id) productIDs
FROM clients c
LEFT JOIN orders o ON c.id = o.client_id
LEFT JOIN orders_products op ON o.id = op.order_id
LEFT JOIN products p ON p.id = op.product_id
WHERE c.status = 1
GROUP BY c.name
Вы можете увидеть результаты здесь: https://www.db -fiddle.com / f / 8bGcQJSbSFmKMUo1tLuZuA / 1
Кажется, я не использовал JOIN'ы.
Еще раз спасибо всем за ваше время.