mysql ecshop-mysl 创建视图然后查询

问题描述

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

mysql ecshop-mysl 创建视图然后查询的相关文章

mysql中创建视图时视图的名称对数据有影响?!?

问题描述 mysql中创建视图时视图的名称对数据有影响?!? 这学期刚刚学数据库,关于mysql创建视图的问题 创建视图的语句: create view supply(sno, pno, qty) as select spj.sno, spj.pno, spj.qty from spj, j where j.jno = spj.jno and j.jname = '三建'; 这样视图创建成功,但是select * from supply;时查询结果是空empty set. 如果将视图名由supp

如何在MySQL中创建视图?

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]    VIEWview_name[(column_list)]    ASselect_statement    [WITH [CASCADED | LOCAL] CHECK OPTION] 该语句能创建新的视图,如果给定了OR REPLACE子句,该语句还能替换已有的视图.select_statement是一种SELECT语句,它给出了视图的定义.该语句可从基表或

mysql view-MySql 创建视图无记录问题

问题描述 MySql 创建视图无记录问题 创建一个视图一个试图,在查询的时候,如果这个表没有记录却要在视图中显示一条记录,请各位大师帮帮忙解决一下?非常感谢!

MySQL中的创建库、表以及查询的基础语句

MySQL中的创建库.表以及查询语句对我们以后很好的应用数据库是很大有帮助的,本文中是对这些基础语 句的总结,希望会对大家有些帮助 1.创建与删除数据库 创建数据库 mysql> create database testdb; mysql> create database if not exists testdb; mysql> create schema if not exists student character set 'gbk' collate 'gbk_chinese_ci'

NetBeans6.1入门教程系列(2)--- 数据库的设计查询以及创建视图

用过MS SQL的朋友都知道他有个视图设计器,可以很方便的创建视图.在NetBeans6.1 中也有这样的 功能.大家看看截图: 选择添加表以后就会弹出对话框,让你选择添加那个表: 添加完以后最终的显示效果: 设计好查询后,大家就可以创建自己的视图了,在导航栏里选择视图选项,然后右键选择"创建视图 ":

数据库 mysql 视图-MYsql,更新或插入创建视图的源表,则视图的数据更新需要时间吗?

问题描述 MYsql,更新或插入创建视图的源表,则视图的数据更新需要时间吗? 使用的工具是Navicat for MySql, 主要问题是:我要同步七张表数据,然后根据这七张表创建了一个视图A,然后根据视图A去刷新表B.视图A与表B,数据结构是一致的. 实现过程是用存储过程,先同步七张表,然后直接用视图A去刷新表B.刷新是指使表B与视图A,数据一模一样. 在测试的过程中,当向七张表同步4万条数据时候,发现表B少同步了:六百多条数据. 我猜测是在同步完七张表数据之后,更新视图A需要一定的时间,在视

在MySQL数据库中对视图的限制

视图处理功能概念未优化: ·不能在视图上创建索引. ·对于使用MERGE算法处理的视图,可以使用索引.但是,对于使用临时表算法处理的视图,不能在其基表上利用索引提供的优点(尽管能够在临时表的生成过程中使用索引). 在视图的FROM子句中不能使用子查询.未来该限制将被放宽. 存在一个一般原则,不能更改某一表并在子查询的相同表内进行选择.请参见I.3节,"对子查询的限制". 如果从表选择了视图并接着从视图进行了选择,同样的原理也适用,如果在子查询中从表选择了视图并使用MERGE算法评估了视

数据库sql 创建视图与视图简介

什么是mysql教程视图 视图图的英文名是view是一种虚拟存在的表,对于使用视图用户来说,基本是透明的,并且是mysql视图在数据库教程中是不存在的,相关的数据来自于查询中使用的表,并且是动态生成的. 好下面我们来看看数据库sql视图创建 创建视图我们会用到create view 的权限,并且对于查询及有select权限,如果使用create or replace 或者alert修改视图表,那么我们还需要drop权限. 下面来看视图创建的语法 create [or replace] [algo

as-oracle12c里用这两个方法创建视图为什么会不一样?按我的理解应该都可以成功的

问题描述 oracle12c里用这两个方法创建视图为什么会不一样?按我的理解应该都可以成功的 创建视图v_mgr_salary,列出每个管理者的名字,以及他的下属中的最高薪水和最低薪水 下面这个创建成功,视图中数据是6条,是正确的: create or replace view v_mgr_salary as select e.ename, s.max_sal, s.min_sal from (select mgr, max(sal) max_sal, min(sal) min_sal from