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;
相關文章:
