Я пытаюсь создать запрос, который позволяет мне получить сумму суммы, хранящуюся в одной таблице, на основе значений в другой таблице.
В частности, у меня есть одна таблица с названием "victory_bids" , которую я хочу объединить с другой таблицей, называемой "объекты". "victory_bids" содержит идентификатор пользователя и идентификатор объекта (первичный ключ таблицы "объекты" ). Таблица "objects" содержит идентификатор объекта и значение объекта. Я хочу суммировать значение из таблицы "objects" для каждого пользователя, сгруппированного по идентификатору пользователя из таблицы "victory_bids" .
Я пробовал что-то вроде этого, но он не работает:
SELECT SUM(o.value) AS total, w.uid
FROM winning_bids w
LEFT JOIN objects o ON (o.id = w.oid)
GROUP BY w.uid
Этот оператор просто возвращает все идентификаторы пользователей, но с общим значением только для первого идентификатора пользователя в каждой строке.
Любая помощь будет оценена, спасибо.
Это отлично работает для меня.
Вот что я сделал, чтобы проверить ваш запрос:
CREATE TABLE winning_bids (uid INT NOT NULL, oid INT NOT NULL);
INSERT INTO winning_bids (uid, oid) VALUES
(1, 1),
(1, 2),
(2, 3);
CREATE TABLE objects (id INT NOT NULL, value INT NOT NULL);
INSERT INTO objects (id, value) VALUES
(1, 1),
(2, 20),
(3, 300);
SELECT SUM(o.value) AS total, w.uid
FROM winning_bids w
LEFT JOIN objects o ON (o.id = w.oid)
GROUP BY w.uid;
Результат:
total uid 21 1 300 2
Если вы все еще думаете, что это не работает, можете ли вы отправить пример ввода данных, который дает неправильный результат при запуске вашего запроса, а также указать, что вы считаете правильным результатом.