mysql 能不能创建一个 有列级函数 的联合视图?
问题描述
刚学创建视图,老是自己多做几个实例,想提高一下,遇到一个问题,我先大体解释一下怎么回事:
表1 shbooks 里面是书籍,表2 shtype 里面是书籍的分类;表1的cid 正好 等于 表2的id;
我先用表2.cid=表1.id创建了一个视图;
又想创建一个统计视图,但是这个统计视图是基于 shbooks 表的属性用 GROUP BY cid , COUNT(*) 创建的,但是这个统计视图没有 书类目的名, 只有书类目的id?请问怎么才能从 shtype 中把书类目名拿过来?
表1 shbooks:
idnamecidpricetime1挪威的森林186.852016-05-05 23:34:182经济学解释223.112016-05-05 23:34:183麦田里的守望者153.872016-05-05 23:34:184伯罗奔尼撒战争336.022016-05-05 23:34:185老人与海198.92016-05-05 23:34:186海边的卡夫卡157.212016-05-05 23:34:187人类群星闪耀时379.522016-05-05 23:34:188动物农场179.782016-05-05 23:34:18表2 shtpye:
idtype1文学2经济3历史4侦探用表2.cid=表1.id创建了一个视图;创建成功的创建的视图:
主键书名类号类目价格导入时间1挪威的森林1文学86.852016-05-05 23:34:183麦田里的守望者1文学53.872016-05-05 23:34:185老人与海1文学98.92016-05-05 23:34:186海边的卡夫卡1文学57.212016-05-05 23:34:188动物农场1文学79.782016-05-05 23:34:1810追忆似水年华1文学82.272016-05-05 23:34:1812舞舞舞1文学73.352016-05-05 23:34:182经济学解释2经济23.112016-05-05 23:34:1813小麦经济学2经济15.192016-05-05 23:34:1814统计数字会说谎2经济39.32016-05-05 23:34:184伯罗奔尼撒战争3历史36.022016-05-05 23:34:18现在这个视图只有类目id,没有类目名,我想在这个视图集上加上类目名,就是可以显示shbooks中cid在 shtype 中的 type,请问怎么弄?
分类编号分类书籍总数17233134175262创建语句如下:
CREATE OR REPLACE VIEW vcount AS SELECT cid AS 分类编号,COUNT(*) AS 分类书籍总数FROM shbooksGROUP BY cid;
问题解答
回答1:CREATE OR REPLACE VIEW view_countAS SELECT t.id AS 书籍类目号, t.type AS 书籍类目名, COUNT( b.name ) AS 书籍总数, MIN( b.price ) AS 最低价, MAX( b.price ) AS 最高价FROM shbook AS b, shtype AS tWHERE b.cid = t.idGROUP BY b.cid;
相关文章:
1. nignx - docker内nginx 80端口被占用2. docker - 如何修改运行中容器的配置3. docker - 各位电脑上有多少个容器啊?容器一多,自己都搞混了,咋办呢?4. 关docker hub上有些镜像的tag被标记““This image has vulnerabilities””5. dockerfile - 我用docker build的时候出现下边问题 麻烦帮我看一下6. docker不显示端口映射呢?7. linux - CentOS安装java环境报错,rpm包安装不成功?8. 网页爬虫 - python爬虫翻页问题,请问各位大神我这段代码怎样翻页,还有价格要登陆后才能看到,应该怎么解决9. angular.js使用$resource服务把数据存入mongodb的问题。10. mac连接阿里云docker集群,已经卡了2天了,求问?