Maison > base de données > tutoriel mysql > Pourquoi plusieurs SQL INNER JOIN nécessitent-elles des parenthèses ?

Pourquoi plusieurs SQL INNER JOIN nécessitent-elles des parenthèses ?

Linda Hamilton
Libérer: 2025-01-19 20:42:10
original
908 Les gens l'ont consulté

Why Do Multiple SQL INNER JOINs Require Parentheses?

Erreur de syntaxe de connexion multi-table SQL

Lorsqu'une instruction SQL contient plusieurs opérations INNER JOIN, toutes les clauses JOIN à l'exception de la première clause JOIN doivent être placées entre parenthèses pour éviter les erreurs de syntaxe.

Description du problème :

Une instruction SQL qui n'en avait auparavant qu'une INNER JOIN renvoie une erreur de syntaxe après l'ajout d'une deuxième jointure de table. La phrase est la suivante :

<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>
Copier après la connexion

Solution :

Pour résoudre cette erreur, des clauses JOIN supplémentaires doivent être placées entre parenthèses. La phrase corrigée est la suivante :

<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>
Copier après la connexion

Explication :

Pour les jointures multi-tables, chaque opération JOIN supplémentaire doit être mise entre parenthèses. Cela garantit une priorité correcte des opérateurs et évite les erreurs de syntaxe. Le JOIN le plus interne est exécuté en premier, puis le JOIN externe suivant, et ainsi de suite jusqu'à ce que la table FROM d'origine soit atteinte.

En adhérant à cette syntaxe, les jointures multi-tables dans les instructions SQL peuvent être exécutées correctement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal