簡體   English   中英

PHP SQL 無重復選擇和分組

[英]PHP SQL selecting and grouping with no duplicates

我不想返回具有最低價格的重復 ISBN(請參閱粗體行)。 我怎樣才能做到這一點?

isbn價格供應商

4000 22.50 公司A

4000 19.99 公司B

4000 22.50 公司 C

4001 33.50 公司A

4001 45.50 公司B

4003 11.99 公司B

我的查詢旨在使用OR運算符。 歡迎保留此方法。

SELECT * FROM table WHERE isbn = 4000 OR isbn = 4001 OR isbn = 4003 GROUP BY isbn ORDER BY price;

您只需要使用MIN聚合函數:

SELECT isbn, MIN(price)
FROM table 
WHERE isbn = 4000 OR isbn = 4001 OR isbn = 4003 
GROUP BY isbn 
ORDER BY price;

此外,正如評論所指出的,使用IN可能比一系列OR更適合您的情況:

SELECT isbn, MIN(price)
FROM table 
WHERE isbn IN (4000, 4001, 4003)
GROUP BY isbn 
ORDER BY price;

你也可以這樣做

SELECT DISTINCT tbl.*
FROM tbl tbl
  INNER JOIN
  (
     SELECT isbn,
       MIN(price) as Price
    from tbl
    group by isbn
  ) tbl1
  ON tbl1.isbn = tbl.isbn
  where tbl.isbn = tbl1.isbn and tbl.price = tbl1.Price
  order by isbn

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM