-2

我正在尝试查找数据库中不是 MAX(bid_ts) 的所有行。我可以使用 !MAX(bid_ts) 还是有更好的方法来做到这一点?

$auctionswinning = "
  SELECT 
    listings.end_date, 
    listings.user_id, 
    listings.title, 
    listings.auc_fp, 
    listings.id, 
    listings.auc_image1 
  FROM listings 
  INNER JOIN (
    SELECT
     listing_id, 
     user_id, 
     !MAX(bid_ts) maxDate
    FROM bids
    GROUP BY listing_id, user_id
  ) bids ON listings.id = bids.listing_id
  WHERE 
   bids.user_id=$userid
   AND listings.end_date > NOW()";
4

3 回答 3

1

尝试这个

SELECT 
    listings.end_date, 
    listings.user_id, 
    listings.title, 
    listings.auc_fp, 
    listings.id, 
    listings.auc_image1 
FROM listings 
INNER JOIN (SELECT
                 listing_id, 
                 user_id, 
                 bid_ts maxDate
            FROM bids
            WHERE bid_ts NOT IN (SELECT MAX(bid_ts) FROM bids)
            GROUP BY listing_id, user_id
            ) bids ON listings.id = bids.listing_id
WHERE bids.user_id=$userid
AND listings.end_date > NOW()
于 2012-12-29T05:33:06.493 回答
0

您必须为此创建一个子查询:

SELECT bid_ts FROM tbl WHERE bid_ts <> (SELECT MAX(bid_ts) FROM tbl);
于 2012-12-29T00:19:52.493 回答
-1
SELECT bid_ts
FROM tbl
HAVING bid_ts <> MAX(bid_ts)

我还没有尝试过,最好避免 HAVING,但它应该让你开始。

于 2012-12-29T00:26:02.353 回答