簡體   English   中英

MySql SELECT從多個記錄中獲取1條記錄

[英]MySql SELECT get 1 record from multiple record

我有一張桌子,看起來像:

id名稱數量價格轉速

1書1 2 $ 10 0

2書2 1 $ 5 0

3書1 3 $ 15 1

4書3 2 $ 10 0

5書4 3 $ 15 0

6書2 3 $ 15 1

7書2 4 $ 20 2

並且要在網絡上顯示的數據是

暫無名稱數量價格轉速

1書1 3 $ 15 1

2書2 4 $ 20 2

3書3 2 $ 10 0

4書4 3 $ 15 0

這是我使用的查詢

<?php
$sql = mysql_query("SELECT SUM(qty*price) FROM data_ph_user ORDER BY id");
while($res = mysql_fetch_array($sql)){
?>
<!-- display result -->
<?php 
$resf1 = $res['SUM(qty*price)']; if($resf1 == 0){ echo '0'; }else{ echo $resf1; }
?>
<!-- end display -->
<?php } ?>

那么,現在如何獲取數據?

我已經使用“ WHERE”進行了各種查詢,但沒有得到結果

我的意思是..所以您只想選擇每本書名最大數量的行..對嗎?

試試下面的查詢

select
  name, qty, price, rev
from
  MyTestingTable
where
  qty = (select max(qty) from MyTestingTable i where i.Name = MyTestingTable.Name)
order by MyTestingTable.name

您也可以查看給定的SQL提琴 。它將為您提供所需的結果。

http://sqlfiddle.com/#!2/9162c4/8 在此處輸入圖片說明

原因是SUM是一個聚合函數 此類函數通常返回一行:在這種情況下, 除非對某些內容進行分組, 否則將對整個表求和。

如果我正確理解了您的問題,您希望列出所有元素的最新修訂版嗎?

SELECT *, MAX(rev) FROM data_ph_user GROUP BY `name`

然后,只需要正確排版即可

暫無
暫無

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

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