1. ホーム
  2. sql-server

[解決済み] 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.) クロスジョイン

それぞれの仕組みを図で紹介します。