首页 文章

Mysql加入桌面两次

提问于
浏览
1

我有两次试图加入 table 的问题 .

我有3个表:用户,拍卖,投标

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

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

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

香港专业教育学院尝试做内部联接没有成功 .

表结构如下:

User Table ID,user_login,user_email

Bids Table ID,user_ID,auct_ID,已创建,金额

Auctions Table 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投标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 <NOW()ORDER BY amount

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

1 回答

  • 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

相关问题