我想从第一个表(naziv
表)中选择slika
和predmet
,并从第二个表(iznos_ponude
表)中选择ponuda
。
这是一个拍卖系统。第一个表代表拍卖对象(宝马,奔驰等),第二个表代表对象的ID(predmet_id
是外键)和该对象的出价。
我需要显示具有最高出价的每个对象。
示例:BMW - IMAGE URL - 17000
这将帮助您更好地理解:
naziv = name
slika = image
iznos_ponude = bid
答案 0 :(得分:1)
如果要包含没有出价的对象,请使用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;
答案 1 :(得分:1)
使用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
在SQL Server中执行此操作的另一种方法,如下所示。
SELECT t1.naziv,
t1.slika,
(SELECT Max(iznos_ponude)
FROM ponuda
WHERE predmet_id = T1.predmet_id) iznos_ponude
FROM predmet T1
同样可以使用如下子查询来实现。
<Menu.Item key="3">
<Icon type="inbox" />
<span>
<a href="#">Option 3</a>
</span>
</Menu.Item>