2012-08-03 70 views
1

我想從不同的表中不同列的總和,我已經做了這樣的事情下面,我想有更好的辦法,這在MySQL一個更好的辦法來提高MySQL的這個查詢

select 
(select sum(sal) from budget_tp) as sal_tp, 
(select sum(sal) from budget_fos_veri) as sal_veri, 
(select sum(sal) from budget_fos_picks)as sal_pick, 
(select sum(sal) from budget_bpo_other)as sal_bpo; 
+0

不,這很好... – zerkms 2012-08-03 06:45:00

+0

它運行緩慢嗎?是什麼讓你覺得它可以改進? – nico 2012-08-03 06:45:47

+0

每個表格中是否有相關的列? – 2012-08-03 06:45:54

回答

1

根據「總結」的數量,您可以使用諸如夜間工作(選擇)之類的填充緩存表的方式 - 因爲預算數字不必是100%的實時值(任何人現在稱SAP HANA爲5用椅子對着臉)

對於純粹的表現,你的選擇語句就像它得到的那樣好。

編輯:這是一個純粹的簡單方法。您也可以爲大型數據集做夜間工作,並且只添加自上次工作總結以來添加到表格中的差異。

+0

K,感謝您的幫助球員。 – user1573319 2012-08-03 06:49:18

+0

嘿如果我有50列可以從50個不同的表格中進行選擇?這種方法對於這個方法會有好處嗎? – user1573319 2012-08-03 06:50:41

+0

一次使用一個作業沒有人使用你的數據庫來填充創建一個「已經總結」列的「一個」緩存表,建立一個總和,是的。所以你總結了每個來源的專欄。請注意:其他數據庫(例如oracle,mssql)可能會更好,因爲它們不依賴外部邏輯來構建這些緩存表(但是可以提供技術支持) – Najzero 2012-08-03 06:53:29