问题描述
- mysl 创建视图然后查询
-
create view gaojia as select cat_id,goods_id,goods_name,shop_price from goods order by cat_id , shop_price desc;
select * from gaojia group by cat_id;
这样并不能查询出每个cat_id下的最高价商品;
这是ecshop下面的库,如果不创建视图,直接用子查询是能查询出正确结果的,创建视图后就不正确了,诸位谁能帮我分析一下原因;
解决方案
create view gaojia as select cat_id,goods_id,goods_name,shop_price from goods order by cat_id , shop_price desc;
select * from gaojia group by cat_id;
这样并不能查询出每个cat_id下的最高价商品;
这是ecshop下面的库,如果不创建视图,直接用子查询是能查询出正确结果的,创建视图后就不正确了,诸位谁能帮我分析一下原因;
解决方案二:
看一下你是否有访问视图的权限。
另外,就从这里来看
select * from gaojia group by cat_id;
select * from goods group by cat_id;
都是有问题的,因为表里面有多个字段
要找最大价格还是需要
select max(shop_price ),cat_id from gaojia group by cat_id的方式
解决方案三:
在创建视图时,如果将cat_id和goods_id换一下位置,就能查询出正确结果,这是什么原因呢,怎么会和字段位置还有关系呢?
时间: 2024-09-17 04:28:09