在上一個問題的後續內容中,假設我有3個表A,B和C.表A有一個ID,用作表B上的外鍵和C,每一個都有一些作爲屬性的價值。對於表A中的每個ID,我想在表B和C之間的差值,這是可以做到如下:基於多個計算值的MySQL中的視圖
CREATE VIEW T1 AS
SELECT B.A_ID AS ID, SUM(B.VALUE) AS VAL
FROM B
GROUP BY B.A_ID;
CREATE VIEW T2 AS
SELECT C.A_ID AS ID, SUM(C.VALUE) AS VAL
FROM C
GROUP BY C.A_ID;
SELECT T1.ID, T1.VAL, T2.VAL FROM T1, T2 WHERE T1.ID = T2.ID;
的問題是,如果有什麼表B中有一個特定的ID一些值,但表C沒有,反之亦然。在這種情況下,我的select語句不會返回該行。有沒有辦法對我來說,建立一個單一的視圖,基本上如下所示:
CREATE VIEW T3 AS
SELECT B.A_ID AS ID, SUM(B.VALUE) AS VAL1, SUB(C.VAL) AS VAL2
FROM B, C
WHERE B.A_ID = C.A_ID
GROUP BY B.A_ID;
這種觀點的創建腳本的一個例子,將不勝感激。
我對最終爲您工作的解決方案非常感興趣。 – 2009-07-13 17:08:17
我可能會嘗試,至少使用你提出的那個。我與我的託管服務提供商存在問題,用戶可以訪問正在解析的數據庫,所以我還沒有能夠對其進行測試,儘管我已準備好了我的腳本。如果你的解決方案有效,我會接受你的答案是正確的。 – Elie 2009-07-13 20:00:30