簡體   English   中英

SQL:如何從一個表中選擇最大值,而從另一表中選擇其他數據

[英]SQL: how to select max value from one table and other data from another table

我想選擇nazivslika從第一個表( predmet表),並iznos_ponude第二個表( ponuda表)。

這是一個拍賣系統。 第一個表表示要拍賣的對象(寶馬,梅賽德斯等),第二個表表示對象的ID(該對象的predmet_id是外鍵)和該對象的出價。

我需要顯示每個對象的最高出價。

例如: BMW - IMAGE URL - 17000

這將幫助您更好地理解:

naziv = name
slika = image
iznos_ponude = bid

“ predmet”表

“ ponuda”表

如果要包含沒有出價的對象,請使用left join並按以下方式group by

select p.naziv, p.slika, max(po.iznos_ponude)
from predmet p left join
     ponude po
     on po.predmet_id = p.predmet_id
group by p.naziv, p.slika;

在SQL Server中使用row_number()執行此操作的另一種方法如下。

SELECT * 
FROM   (SELECT t1.naziv, 
               t1.slika, 
               T2.iznos_ponude, 
               Row_number() 
                 OVER( 
                   partition BY T2.predmet_id 
                   ORDER BY iznos_ponude DESC) rn 
        FROM   predmet T1 
               INNER JOIN ponuda T2 
                       ON T1.predmet_id = T2.predmet_id)t 
WHERE  rn = 1 

同樣的事情也可以使用如下子查詢來實現。

SELECT t1.naziv, 
       t1.slika, 
       (SELECT Max(iznos_ponude) 
        FROM   ponuda 
        WHERE  predmet_id = T1.predmet_id) iznos_ponude 
FROM   predmet T1 

暫無
暫無

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

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