我需要選擇固定發帖ID,按用戶ID分組和按最新日期的語句。這裏是我有什麼:請選擇最近的日期
$bids = "SELECT uid, Max(date_made), bid FROM ".$wpdb->prefix."auction_bids WHERE pid=$pid GROUP BY uid";
在這個查詢是隻有日期的問題,它返回第一個結果,但我需要最後一個。 這裏是我的數據庫的屏幕:
我需要選擇固定發帖ID,按用戶ID分組和按最新日期的語句。這裏是我有什麼:請選擇最近的日期
$bids = "SELECT uid, Max(date_made), bid FROM ".$wpdb->prefix."auction_bids WHERE pid=$pid GROUP BY uid";
在這個查詢是隻有日期的問題,它返回第一個結果,但我需要最後一個。 這裏是我的數據庫的屏幕:
您需要獲得groupwise maximum:
SELECT uid, date_made, bid
FROM ${wpdb->prefix}auction_bids NATURAL JOIN (
SELECT uid, MAX(date_made) AS date_made
FROM ${wpdb->prefix}auction_bids
WHERE pid = $pid
GROUP BY uid
) AS t
WHERE pid = $pid
看到它的sqlfiddle。
使用最小的,而不是最大和搶ID,然後加入:
$bids = "SELECT ss.uid, ss.min, b.bid FROM ".$wpdb->prefix."auction_bids bid INNER JOIN (SELECT uid, MIN(date_made) as min FROM ".$wpdb->prefix."auction_bids WHERE pid=$pid GROUP BY uid) ss ON ss.uid = bid.uid";
目前尚不清楚你從你的英語想要的東西。抱歉。
嗯,對不起,我的英語很差,因爲它不是我的母語,但我儘可能準確地嘗試了它。你什麼都不明白? – NoNameZ
試試這個
"SELECT pre.uid, pre.date_made, pre.bid
FROM ".$wpdb->prefix." AS pre
WHERE pre.pid = $pid AND date_made =
(SELECT MAX(pre2.date_made) FROM ".$wpdb->prefix." AS pre2
WHERE pre2.uid = pre.uid)
GROUP BY pre.uid";
有點複雜,但有效率。類似於eggyal的答案,但我使用theta風格的編碼,因此很容易理解。
只有最大值,而不是最小值。正如我所說 - 最新的日期。但答案很好,非常感謝。 – NoNameZ
@NoNameZ:更新。 – eggyal