只用到一个表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
这个语句怎么写?谢谢!!
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
这个语句怎么写?谢谢!!
WHERE NOT EXISTS(SELECT 1 FROM sellers B WHERE A.keyword = B.keyword and A.price > B.price)
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
id seller product keyword price
1 沃尔玛 泰国稻米得大米 米 6
2 沃尔玛 东北小麦粉 麦 3
3 百佳 东北大米 大米 3
4 家乐福 东北大米 米 3.2
5 好又多 超级小麦面粉 麦 3.5
6 永辉 湖北大米 大米 2.8
怎么查?因为原本这个A.keyword不一定等于B.keyword,只要是keyword的值被包含在了product值里就行
谢谢哥再帮忙看下!
select * from seller d where price in (select min(price) from seller k where d.keyword=k.keyword group by keyword )