日期:2014-05-17  浏览次数:20437 次

这个查询语句怎么写,查出价格最低的
只用到一个表sellers
id  seller  product          keyword      price
1   沃尔玛   泰国稻米得大米       大米          6
2   沃尔玛   东北小麦粉           麦            3
3   百佳     东北大米             大米          3
4   家乐福   东北大米             大米          3.2
5   好又多   超级小麦面粉         麦            3.5    
6   永辉     湖北大米             大米          2.8

我想查出这个表里每一类价格最便宜的行,也即字段product值中包含了字段keyword值的结果中价格最便宜的行,比如这个表里出来的结果就是以下两行结果
6   永辉     湖北大米             大米          2.8
2   沃尔玛   东北小麦粉           麦            3
这个语句怎么写?谢谢!!

------解决方案--------------------
SELECT * FROM sellers A
WHERE NOT EXISTS(SELECT 1 FROM sellers B WHERE A.keyword = B.keyword and A.price > B.price)

------解决方案--------------------
这样的一般习惯用Group by语法。也给一个,不过是在MySql运行通过的,呵呵。

select t.* from sellers t
right join 
(SELECT min(price) as price,keyword FROM sellers group by keyword) temp
on temp.price=t.price and temp.keyword = t.keyword
order by t.keyword
------解决方案--------------------

select * from seller d where price in (select min(price) from seller k where d.keyword=k.keyword group by keyword  )