如何根据ID将SQL限制为一条记录

时间:2017-12-23 22:14:45

标签: php mysql codeigniter

我有一个名为出价的表,它有多行。

这些都有唯一的ID,但是它们也有一个listingID,所以每次插入它都会插入一个新的行但是带有该listingID。

我尝试只返回一个与查看表格中所有出价相同的清单ID的唯一结果,我尝试了SELECT DISTINCT并分组,但两者似乎都没有效果。

目前正在打印表格中的所有记录'出价'

我想只打印listingID列的最后一条记录。

$bids = $this->db->query("SELECT bidID,listingID, listing_title, bid_date, username,amount, starting_, sold, vintage, bottles, size, cases, sold_date, bid_type,
FORMAT(`bin`, 0) AS `bin`,
(CASE
WHEN ( SELECT COUNT(*) FROM bids WHERE bid_listing = listingID )
THEN
(SELECT FORMAT(amount,0) FROM bids WHERE bid_listing = listingID  ORDER BY bidID DESC LIMIT 1)
ELSE
FORMAT(`starting_`, 0)
END
) AS `starting`
FROM (`bids`)
JOIN listings ON listingID = bid_listing
JOIN users ON list_uID = userID
WHERE bidder_ID = $userID
ORDER BY bidID DESC");

1 个答案:

答案 0 :(得分:0)

试试这个sql。我使用b1。*因为我不知道你要回归的字段。

$bids = $this->db->query("select b1.* from bids b1
        left join bids b2 on (b1.listingID  = b2.listingID and b1.bidID < b2.bidID
        where b2.bidID is null");