[英]SQL: how to select max value from one table and other data from another table
我想選擇naziv
和slika
從第一個表( predmet
表),並iznos_ponude
第二個表( ponuda
表)。
這是一個拍賣系統。 第一個表表示要拍賣的對象(寶馬,梅賽德斯等),第二個表表示對象的ID(該對象的predmet_id
是外鍵)和該對象的出價。
我需要顯示每個對象的最高出價。
例如: BMW - IMAGE URL - 17000
這將幫助您更好地理解:
naziv = name
slika = image
iznos_ponude = bid
如果要包含沒有出價的對象,請使用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.