#mysql
#mysql
Вопрос:
У меня есть таблицы пользователей и заказов с такой структурой (упрощенная для вопроса):
Пользователи
идентификатор пользователя
ownerid (идентификатор владельца пользователя, например, основного пользователя)
Компания
ЗАКАЗЫ
ID
дата (дата размещения заказа)
user_id
итого
Мне нужно получить всех пользователей, связанных с одним владельцем (ownerid, скажем, 52, например), которые размещали заказы в течение выбранного периода, в виде массива с некоторыми полями (см. В Запросе). К сожалению, мой запрос выдает ОДИН (не массив), а не текущий результат (иногда даже null во всех полях). Это мой запрос:
SELECT
ei_users.userid as id,
ei_users.company as company,
ei_users.city as city,
ei_users.user_type as user_type,
ei_users.registered as registered,
count(ei_orders.id) AS orders,
sum(ei_orders.total) AS revenue
FROM
ei_orders,
ei_users
WHERE
ei_users.userid = ei_orders.user_id
amp;amp; ei_users.ownerid = 52
amp;amp; DATE_FORMAT(ei_orders.date, "%b") = "Apr"
amp;amp; DATE_FORMAT(ei_orders.date, "%Y") = "2019"
Пожалуйста, дайте мне знать, что не так с моим запросом и почему я не получаю массив с результатами?
Я нашел свою ошибку, я забыл добавить ГРУППУ ПО ei_users.userid в конце:
SELECT
ei_users.userid as id,
ei_users.company as company,
ei_users.city as city,
ei_users.user_type as user_type,
ei_users.registered as registered,
count(ei_orders.id) AS orders,
sum(ei_orders.total) AS revenue
FROM
ei_orders,
ei_users
WHERE
ei_users.userid = ei_orders.user_id
amp;amp; ei_users.ownerid = 52
amp;amp; DATE_FORMAT(ei_orders.date, "%b") = "Apr"
amp;amp; DATE_FORMAT(ei_orders.date, "%Y") = "2019"
GROUP BY ei_users.userid
Ответ №1:
Похоже, я забыл добавить в конце:
GROUP BY ei_users.userid