[解決済み] SQL Serverは、ビュークエリでLEFT JOINをLEFT OUTER JOINに置き換えます。
2022-03-05 06:09:01
質問
ビューで LEFT JOIN を使用する必要がありますが、SQL Server はビューを保存するたびに LEFT JOIN を LEFT OUTER JOIN に置き換えてしまいます。
LEFT INNER JOIN を明示的に使用しようとすると、エラー "単語 'INNER' の近くに不正な構文があります "。さらに、ビューのインデックスを作成しようとすると、エラー "Cannot add clustered index to views using OUTER JOINS" が表示されます。
なぜこのようなことが起こるのか、おわかりになりますか?
そのため、ビューのインデックスを作成しようとすると、外部結合を使用していないにもかかわらず、外部結合を使用したというメッセージが表示されます。
解決方法は?
結合を混同しているようですが、結合にはさまざまな書き方があることを覚えておいてください。あなたが探しているのはLEFT OUTER JOINです(OUTERはオプションです)。LEFT INNER JOINはありません。
結合の種類は大きく分けて3つあります。
タイプ 1: INNER JOIN - 両方のテーブルが一致する場合のみ。
1.) INNER JOIN 別名 JOIN
タイプ2:どちらかのテーブルまたは両方のテーブルが一致するOUTER JOINS
1.) 左外部結合 別名 LEFT JOIN
2.) 右外部結合 別名 RIGHT JOIN
3.) フルアウタージョイン 別名 FULL JOIN
タイプ3: CROSS JOIN - 直積(各テーブルの可能なすべての組み合わせ)
1.) クロスジョイン
それぞれの仕組みを図で紹介します。
関連
-
[解決済み] 等値演算で "SQL_Latin1_General_CP1_CI_AS" と "Latin1_General_CI_AS" の照合の競合を解決できない
-
[解決済み] ミリタリータイムを使用するDatetimeフィールド - 標準時間のみが必要です。
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] SQL Server テーブルにカラムが存在するかどうかを確認する方法は?
-
[解決済み] SQL Server の DateTime データ型から日付だけを返す方法
-
[解決済み] SQL ServerにおけるLEFT JOINとLEFT OUTER JOINの比較
-
[解決済み] SQL ServerでJOINを使用してUPDATE文を実行するにはどうすればよいですか?
-
[解決済み] 最初の行への結合方法
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
-
[解決済み] SQL ServerでINNER JOINを使用して削除するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー "INSERT EXEC文はネストできません。" "INSERT-EXEC文の中でROLLBACK文は使用できません。" これを解決するにはどうすればよいですか?
-
[解決済み] プロシージャは 'ntext/nchar/nvarchar' 型のパラメータ '@statement' を想定しています。
-
[解決済み] SQL Server 2012 エラー: オブジェクト参照がオブジェクトのインスタンスに設定されていない
-
[解決済み] データベースのトランザクションログが満杯です。ログの領域が再利用できない理由を調べるには、sys.databases の log_reuse_wait_desc カラムを参照してください。
-
[解決済み] オペランドタイプの衝突
-
[解決済み] SSISの日付と時刻の連結
-
[解決済み] SQL Serverのタイムスタンプ列をdatetime形式に変換する方法
-
[解決済み] SQLのReplace関数内の正規表現?
-
[解決済み] SQLサーバーを使用して文字列を切り詰める方法
-
[解決済み] SQL ServerにおけるLEFT JOINとLEFT OUTER JOINの比較