-1

投稿IDが固定され、ユーザーIDでグループ化され、最新の日付のステートメントを選択する必要があります。これが私が持っているものです:

$bids = "SELECT uid, Max(date_made), bid FROM ".$wpdb->prefix."auction_bids WHERE pid=$pid GROUP BY uid";

このクエリでは日付のみに問題があり、最初の結果が返されますが、最後が必要です。これが私のデータベースの画面です: bd

4

3 に答える 3

3

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で参照してください。

于 2012-06-29T23:57:46.070 に答える
0

max の代わりに min を使用して 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";

あなたの英語に何を求めているのか明確ではありません。ごめん。

于 2012-06-29T23:58:03.833 に答える
0

これを試して

"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";

少し複雑ですが効率的です。egyalの答えに似ていますが、シータ スタイルのコーディングを使用しているため、理解しやすいです。

于 2012-10-12T18:06:05.510 に答える