У меня есть таблица с именем Auction
, которая содержит auctionID
. У меня есть другая таблица с именем bid
, которая содержит auctionID
(в качестве внешнего ключа) и какую сумму.
Я хочу перечислить auctionID
в одном столбце и сумму наибольшей ставки в другом столбце.
Я пробовал разные способы выполнения внутренних объединений, чтобы это правильно отображалось, но ужасно не получилось. Пожалуйста, имейте в виду, что я абсолютный новичок, когда дело доходит до MYSQL, и решение вполне может состоять в том, что я должен вернуться и перепроектировать всю базу данных.
Самое близкое, что я хочу показать, - это два разных метода ниже.
Первый
SELECT auction.auctionID, bid.bid
from bid
INNER JOIN
auction on auction.auctionsID = bid.auctionsID;
Второй выглядит следующим образом
SELECT auction.auctionsID, bid.bid
from bid
INNER JOIN
auction on auction.auctionsID = bid.auctionsID
where bid.bid = (select max(bid.bid) from bid);
Первый показывает все ставки, которые были сделаны, и какую сумму они где, но я хочу только самую высокую ставку на каждую auctionID
.
Второй показывает только самую высокую ставку, когда-либо сделанную на всех аукционах, и то, что auctionID
было на этом аукционе.
Я предполагаю, что мне нужны какие-то вложенные операторы соединения, но я действительно не могу обернуться вокруг этого.
Заранее спасибо!
Редактировать: Какой замечательный опыт. Как давний пользователь, который в отчаянии создал учетную запись сегодня, чтобы задать мой первый вопрос. Я получил потрясающую помощь от этого сообщества.
Ответ:
SELECT auctionid, MAX(bid) as maxbid FROM bid GROUP BY auctionid;
Предоставлено Гайом Джардом и Деепендрой Бхандари