Здравствуйте!
Имеется таблица пользователей с полями
id, name, phone, email, created
А также ещё одна таблица, где хранятся заказы этих пользователей, со следующими полями
id, summa, user_id, created
Поле created хранится в таком формате
Y-m-d H:i:s
И нужно получить одним запросом следующие данные:
1. Имя пользователя
2. Телефон пользователя
3. Сумму всех заказов пользователя
4. Средний чек пользователя
5. Когда пользователь последний раз делал заказ
При этом нужно убрать из результа запроса, когда записей в заказах вообще нет.
Я реализовал следующим образом:
SELECT users.name, users.phone, (SELECT MAX(orders.subtotal) FROM orders WHERE orders.user_id=1) as max_order, (SELECT ROUND(AVG(orders.subtotal)) FROM orders WHERE orders.user_id=1) as average_check, (SELECT MAX(orders.created) FROM orders WHERE orders.user_id=1) as last_day_of_order FROM users WHERE users.id=1
Но в этом варианте не учтено, что заказов может не быть вообще и нужно бы каким-то образом показать пустой результат.
Буду весьма благодарен за любую подсказку.