Mysql加入桌面两次

时间:2011-10-06 03:51:08

标签: mysql sql join

我在尝试加入桌子两次时遇到问题。

我有3个表:用户,拍卖,出价

Auctions和Bids都包含一个名为 user_ID 的列,该列与Users表 ID 相关。

每个的user_ID与卖家(拍卖表)和赢家(投标表)相关

我如何加入所有3以便我有一行: auction_ID,auction_status,seller_name,seller_email,winner_name,winner_email

我尝试过做内连接但没有成功。

表结构如下:

用户表 ID, 用户登录, USER_EMAIL

出价表 ID, 用户身份, auct_ID, 创建 量

拍卖表 ID, 用户身份, 标题, END_TIME

此刻我有以下问题:

选择a.ID作为auct_ID,a.status,s.user_email作为卖家,w.user_email作为投标人,b.amount,b.created FROM auction a INNER JOIN出价b ON b.auct_ID = a.id INNER JOIN用户登录a.user_ID = s.id. INNER JOIN用户w ON b.user_ID = w.id WHERE status ='active'和a.end_time<现在()按金额订购

这给了我一个已过期拍卖的所有出价。我希望所有已过期的拍卖只想要最高出价者。

1 个答案:

答案 0 :(得分:2)

尝试:

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

sw表别名适用于sellerswinners