您的位置:首页技术文章
文章详情页

mysql 能不能创建一个 有列级函数 的联合视图?

【字号: 日期:2022-06-22 09:31:51浏览:16作者:猪猪

问题描述

刚学创建视图,老是自己多做几个实例,想提高一下,遇到一个问题,我先大体解释一下怎么回事:

表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;

相关文章: