2017-08-04 13 views
0

4つのテーブルをすべて結合しようとすると次のクエリが動作しません(実行に1時間以上かかります。 表1,2 1,3が結合されているときに動作します。表1,2を試すと、& 4が結合されますが、下の4つの表をすべて結合しようとした場合は動作しません。SQL多重ジョイントが期待どおりに動作しない

注: 1)RIdは表3にはありません。 2)表4ではMIdは使用できません。

ありがとうございました。

+2

「内部結合」の代わりに「LEFT JOIN」を使用してください –

+1

「期待通りに動作しません」とはどういう意味ですか? – LONG

+0

問題点は何ですか?あなたは空のテーブルを受け取りますか?クエリがクラッシュしていますか? –

答えて

1

クエリプランを表示する権限がないと述べたので、各テーブルの結合を分割してみてください。どのテーブル結合がレコードの取得に時間がかかっているかを確認することもできます。そこから、時間がかかる理由をデータで調べることができます。表3と表4の列キーが使用できないことが原因である可能性がありますか?

WITH Tab1_2 AS 
(SELECT r.ID, r.MId, r.RId, r.F_Name, r.F_Value, fe.FullEval, fe.date 
    FROM Table1 as r 
    INNER JOIN Table2 fe 
    ON r.ID = fe.RClId 
    AND r.MId = fe.MId 
    AND r.RId = fe.RId 
    WHERE ... -- place your conditions if any 
), 

Tab12_3 AS 
(SELECT t12.*, m.Name 
    FROM Tab1_2 t12 
    INNER JOIN Table3 as m 
    ON t12.MId = m.MId 
    WHERE ... -- place your conditions if any 
), 

Tab123_4 AS 
(SELECT t123.ID, t123.MId, t123.RId, t123.F_Name, t123.F_Value, t123.FullEval, rc.CC 
    FROM Tab12_3 t123 
    INNER JOIN Table4 as rc 
    ON t123.RId = rc.RId 
    AND t123.Date = rc.Date 
    WHERE ... -- place your conditions if any 
) 

SELECT * 
    FROM Tab123_4 t1234 
+0

こんにちは。推奨していただきありがとうございます。 残念ながら、変更を加えてほぼ1時間実行しても結果がなかったため、クエリを停止する必要がありました。 注:表1,2&3に参加することができ、2分で結果を見ることができます。私もテーブル1,2&4に参加することができ、わずか2分で結果を見ることができます。 それはちょうど私がすべての4つのテーブルに加わることを試みるとき私は損失にある!! :( – user8419075

+0

私は最終的に次のエラーでほぼ2時間クエリを実行しました: ファイルグループ 'DEFAULT'のディスク領域が不足しているため、データベース 'TEMPDB'の新しいページを割り当てることができませんでした。 – user8419075

関連する問題