Heim  >  Fragen und Antworten  >  Hauptteil

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

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

表1 shbooks 里面是书籍,
表2 shtype 里面是书籍的分类;
表1的cid 正好 等于 表2的id;

我先用表2.cid=表1.id创建了一个视图;

又想创建一个统计视图,但是这个统计视图是基于 shbooks 表的属性用 GROUP BY cid , COUNT(*) 创建的,
但是这个统计视图没有 书类目的名, 只有书类目的id?
请问怎么才能从 shtype 中把书类目名拿过来?

表1 shbooks:

id name cid price time
1 挪威的森林 1 86.85 2016-05-05 23:34:18
2 经济学解释 2 23.11 2016-05-05 23:34:18
3 麦田里的守望者 1 53.87 2016-05-05 23:34:18
4 伯罗奔尼撒战争 3 36.02 2016-05-05 23:34:18
5 老人与海 1 98.9 2016-05-05 23:34:18
6 海边的卡夫卡 1 57.21 2016-05-05 23:34:18
7 人类群星闪耀时 3 79.52 2016-05-05 23:34:18
8 动物农场 1 79.78 2016-05-05 23:34:18

表2 shtpye:

id type
1 文学
2 经济
3 历史
4 侦探

用表2.cid=表1.id创建了一个视图;
创建成功的创建的视图:

主键 书名 类号 类目 价格 导入时间
1 挪威的森林 1 文学 86.85 2016-05-05 23:34:18
3 麦田里的守望者 1 文学 53.87 2016-05-05 23:34:18
5 老人与海 1 文学 98.9 2016-05-05 23:34:18
6 海边的卡夫卡 1 文学 57.21 2016-05-05 23:34:18
8 动物农场 1 文学 79.78 2016-05-05 23:34:18
10 追忆似水年华 1 文学 82.27 2016-05-05 23:34:18
12 舞舞舞 1 文学 73.35 2016-05-05 23:34:18
2 经济学解释 2 经济 23.11 2016-05-05 23:34:18
13 小麦经济学 2 经济 15.19 2016-05-05 23:34:18
14 统计数字会说谎 2 经济 39.3 2016-05-05 23:34:18
4 伯罗奔尼撒战争 3 历史 36.02 2016-05-05 23:34:18

现在这个视图只有类目id,没有类目名,我想在这个视图集上加上类目名,就是可以显示shbooks中cid在 shtype 中的 type,请问怎么弄?

分类编号 分类书籍总数
1 7
2 3
3 13
4 17
5 2
6 2

创建语句如下:

CREATE OR REPLACE VIEW vcount AS SELECT
    cid AS 分类编号,COUNT(*) AS 分类书籍总数
FROM
    shbooks
GROUP BY
    cid;
巴扎黑巴扎黑2742 Tage vor607

Antworte allen(1)Ich werde antworten

  • 阿神

    阿神2017-04-17 14:44:16

    CREATE OR REPLACE VIEW
        view_count
    AS 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 t
    WHERE
        b.cid = t.id
    GROUP BY
        b.cid;

    Antwort
    0
  • StornierenAntwort