我在尝试加入桌子两次时遇到问题。
我有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<现在()按金额订购
这给了我一个已过期拍卖的所有出价。我希望所有已过期的拍卖只想要最高出价者。
答案 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
s
和w
表别名适用于sellers
和winners