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

问题描述 投票:1回答:1

我有一个叫做出价的表,它有多行。

这些都有唯一的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");
php mysql codeigniter
1个回答
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");
© www.soinside.com 2019 - 2024. All rights reserved.