假设我有一个名为items的表:
sender_id receiver_id goods_id price
2 1 a1 1000
3 1 b2 2000
2 1 c1 5000
4 1 d1 700
2 1 b1 500
在这里,我要从项目表中按价格降序选择sender_id,goods_id,这样就不会出现包含相同sender_id值(此处为sender_id 2)的行超过一次的情况。我使用以下查询,但没有成功:
select distinct sender_id,goods_id from items where receiver_id=1 order by price desc
结果显示所有五个元组(记录),其中包含sender_id 2的元组按时间降序排列三次。但是我要显示的只有三条记录,其中一个具有sender_id 2的记录,最高价为5000。我做?我的预期输出是:
sender_id goods_id
2 c1
3 b2
4 d1
请尝试这个
select sender_id,goods_id from items t1
where not exists (select 1 from items t2
where t2.sender_id = t1.sender_id
and t2.receiver_id = t1.receiver_id
and t2.price > t1.price)
and receiver_id = 1
order by price desc
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句