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. javascript - vuejs 如何给option 添加点击事件2. html5 - vue项目中vuex存储问题3. mysql - spring data jpa 方法sql复杂查询?4. 微信订阅号如何用渠道二维码统计地推效果?5. 想练支付宝对接和微信支付对接开发(Java),好像个人不可以,怎么弄个企业的呢?6. javascript - QQ第三方登录的问题7. 并发 - python多进程+协程的正确姿势?8. python sqlalchemy create_engine问题9. 网页爬虫 - python爬虫翻页问题,请问各位大神我这段代码怎样翻页,还有价格要登陆后才能看到,应该怎么解决10. mysql - PHP 批量插入的时候 判断数据表里面是否重复怎么优化