Mysql присоединиться к столу дважды - PullRequest
1 голос
/ 06 октября 2011

У меня возникают проблемы при попытке присоединиться к таблице дважды.

У меня есть 3 таблицы: пользователи, аукционы, ставки

И в аукционах, и в торгах есть столбец с именем user_ID которая относится к таблице пользователей ID .

Идентификатор пользователя для каждого из них относится к продавцу (аукционная таблица) и победителю (таблица ставок)

Как мне присоединиться ко всем 3так что у меня есть строка с: auction_ID, auction_status, seller_name, seller_email, winner_name, winner_email

Я попытался выполнить внутреннее соединение без успеха.

Структура таблицы выглядит следующим образом:

Таблица пользователей ID, user_login, user_email

Таблица ставок ID, user_ID, auct_ID, создана, сумма

Таблица аукционов ID, user_ID, title, end_time

ТАК на данный момент у меня следующий запрос:

ВЫБЕРИТЕ a.ID в качестве auct_ID, a.status, s.user_email в качестве продавца, w.user_email как участник торгов, b.amount, b.created FROM аукционы INNER JOIN BID B ON B.auct_ID = a.id INNER JOIN пользователей s ON a.user_ID = s.id INNER JOIN пользователи w ON b.user_ID = w.id WHERE status = 'active' И a.end_time

Что дает мне всеставки одного аукциона, который истек.Я хочу, чтобы все аукционы с истекшим сроком действия, и я хочу только самую высокую цену.

1 Ответ

2 голосов
/ 06 октября 2011

Попробуйте с:

SELECT a.*, s.*, w.*, b.* FROM auctions a
INNER JOIN bids b ON b.auction_id = a.id
INNER JOIN users s ON a.user_ID = s.id 
INNER JOIN users w ON b.user_ID = w.id 
WHERE .....
ORDER BY b.amount DESC LIMIT 1

псевдоним таблицы s и w для sellers и winners

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...