2016-09-29 5 views

答えて

2

使用UNION ALL(テーブルの全てのid 1)

​​は、すべての18個のテーブルからのすべての値を取得します。その後、SUM機能を使用してください。

クエリ

SELECT SUM(t.result) FROM(
    SELECT result FROM table_1 
    UNION ALL 
    SELECT result FROM table_2 
    UNION ALL 
    ........................... 
    ........................... 
    SELECT result FROM table_18 
)t; 

あなたがテーブルから特定のIDのためのresult列の値をしたい場合。次に、WHEREを使用します。

+0

@bassrek:実際問題は明らかではありません。私はすべての列からid = 1の結果列の値を考える。それでは、 'WHERE'条件で可能です。 – Wanderer

+0

@Ulas - 削除する前に私のコメントを見たようです。私は私のメモを投稿した後に 'WHERE'節についてあなたの最後の行に気づいたので、私は削除しました:) – bassrek

1

それはかなりありませんが、このようなものを使用すると、IDは、常にすべてのテーブルに存在することが絶対確実でない限りあなたはOUTER JOINSを使用して検討する必要があります

SELECT a.result + b.result + c.result -- (All the way to r.result...) 
FROM TableA a 
INNER JOIN TableB b 
    ON a.ID = b.ID 
INNER JOIN TableC c 
    ON b.ID = c.ID 
-- (All the way to TableR ...) 

を働くだろう。

関連する問題