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. 记不住代码有什么好的方法吗?2. ubuntu apt-get install update 无法更新3. javascript - H5下拉能更换页面么 怎么实现 在左右滑的页面中4. angular.js - 有人看过Angular即学即用这本书吗5. angular.js - 关于指令link 中的创建变量问题6. java - 当系统出现线程死锁时怎么处理?7. vue计算属性怎么样与for结合使用8. angular.js - angularjs如何优雅的实现多个按钮之间触发其中一个的激活样式?9. vue.js - vue上传代码到git10. angular.js - form 表单,点击提交按钮 判断ng-checked 已选中