ホームページ > データベース > mysql チュートリアル > 複数の SQL INNER JOIN に括弧が必要なのはなぜですか?

複数の SQL INNER JOIN に括弧が必要なのはなぜですか?

Linda Hamilton
リリース: 2025-01-19 20:42:10
オリジナル
949 人が閲覧しました

Why Do Multiple SQL INNER JOINs Require Parentheses?

SQL マルチテーブル接続構文エラー

SQL ステートメントに複数の INNER JOIN 操作が含まれる場合、構文エラーを避けるために、最初の JOIN 句を除くすべての JOIN 句を括弧で囲む必要があります。

問題の説明:

以前は INNER JOIN が 1 つしかなかった SQL ステートメントは、2 番目のテーブル結合を追加した後に構文エラーをスローします。文は次のとおりです。

<code class="language-sql">adsFormView.SelectCommand = "SELECT * FROM [tableCourse] 
INNER JOIN [tableGrade] ON [tableCourse].[grading] = [tableGrade].[id] 
INNER JOIN [tableCourseType] ON [tableCourse].[course_type] = [tableCourseType].[id] 
WHERE [prefix]='" & myPrefix & "' AND [course_number]='" & myCourseNum & "'"</code>
ログイン後にコピー

解決策:

このエラーを解決するには、追加の JOIN 句を括弧で囲む必要があります。修正後の文は以下の通りです:

<code class="language-sql">adsFormView.SelectCommand = "SELECT * FROM [tableCourse] 
INNER JOIN [tableGrade] ON [tableCourse].[grading] = [tableGrade].[id] 
INNER JOIN (
    [tableCourseType] ON [tableCourse].[course_type] = [tableCourseType].[id]
)
WHERE [prefix]='" & myPrefix & "' AND [course_number]='" & myCourseNum & "'"</code>
ログイン後にコピー

説明:

複数テーブル結合の場合、追加の各 JOIN 操作を括弧で囲む必要があります。これにより、演算子の優先順位が正しく設定され、構文エラーが防止されます。最も内側の JOIN が最初に実行され、次に次の外側の JOIN が実行され、元の FROM テーブルに到達するまで続きます。

この構文に従うことで、SQL ステートメント内の複数テーブルの結合を正しく実行できます。

以上が複数の SQL INNER JOIN に括弧が必要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート