[英]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.