簡體   English   中英

MySQL Inner Join兩個表關於第二個表的最大值

[英]MySQL Inner Join two tables on the maximum values of the second table

我有兩個表“列表”和“出價”。 我有一個查詢,它將返回特定用戶競標的所有列表,其中end_date已過去。 不過,我需要做的是進一步限制結果,以僅找到用戶出價最高的出價列表。 這是我到目前為止的查詢...

SELECT listings.end_date, listings.user_id, listings.title, listings.auc_fp, listings.id, listings.auc_image1 
FROM listings INNER JOIN bids ON listings.id = bids.listing_id 
WHERE bids.user_id=$userid 
AND listings.end_date < NOW() 
ORDER BY list_ts DESC"

我對子查詢不滿意,我假設我需要在此處查找“出價”表中的所有用戶出價,其中bid_ts(出價時間戳)是該出價中對應的listing_id的最新時間戳表。 我的出價表中的列為:listing_id,user_id,bid,bid_ts。

+------------+---------+------+---------------------+
| listing_id | user_id | bids | bid_ts              |
+------------+---------+------+---------------------+
|  1         | 10      | 100  | 2012-11-16 00:54:03 |
|  1         | 11      | 101  | 2012-11-16 00:54:04 |
|  2         | 10      | 33   | 2012-11-16 00:54:03 | 
|  2         | 11      | 34   | 2012-11-16 00:54:04 |
|  2         | 12      | 35   | 2012-11-16 00:54:05 |
+------------+---------+------+---------------------+

謝謝你的幫助

SELECT  a.*
FROM    tableName a
        INNER JOIN
        (
            SELECT listing_ID, user_ID, MAX(bid_ts) maxDate
            FROM tableName
            GROUP BY listing_ID, user_ID
        ) b ON  a.listing_ID = b.listing_ID AND
                a.user_ID = b.user_ID AND
                a.bid_ts = b.maxDate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM