Maison > base de données > tutoriel mysql > Que signifie la syntaxe « =* » dans les jointures SQL ?

Que signifie la syntaxe « =* » dans les jointures SQL ?

Patricia Arquette
Libérer: 2025-01-04 19:58:41
original
446 Les gens l'ont consulté

What Does the

Comprendre la signification de "=*" dans les jointures SQL

Lors de l'examen du code Microsoft SQL Server, il est possible de rencontrer une jointure inconnue convention : "=*." Cette syntaxe, qui a des racines historiques avant SQL Server 2005, a une signification spécifique et n'est pas une ANSI JOIN.

Syntaxe de la jointure "=*"

La La syntaxe de jointure "=*" prend ce qui suit form :

WHERE table1.yr =* table2.yr -1
Copier après la connexion

Définition

La jointure "=*" est une jointure externe qui utilise la logique suivante :

  • Si la table de gauche (table1 dans l'exemple) contient une ligne avec une valeur correspondante dans la table de droite (table2), les lignes sont jointes.
  • Si la table de gauche (table1) n'a pas de valeur correspondante dans la table de droite (table2), une valeur nulle est ajoutée pour les colonnes de la table de droite.
  • Si la table de droite (table2) n'a pas de valeur correspondante dans le table de gauche (table1), une valeur nulle est ajoutée pour les colonnes de gauche table.

Exemple

Considérez les tables suivantes :

table1:
| yr | data |
| ----------- | -------- |
| 2022 | x |
| 2023 | y |

table2:
| yr | value |
| ----------- | --------- |
| 2021 | a |
| 2022 | b |
Copier après la connexion

La requête suivante utilise la jointure "=*" pour combiner ces tables :

SELECT *
FROM table1
WHERE table1.yr =* table2.yr -1;
Copier après la connexion

Cette requête produirait ce qui suit résultat :

yr data value
2022 x b
2023 y NULL
**Note:** The "-1" in the query subtracts one year from the "yr" column of table2, resulting in a match for "2022" from table1.

**Historical Significance and ANSI Joins**

The "=*" join syntax was prevalent in older versions of TSQL. However, since SQL Server 2005, ANSI JOIN syntax is preferred. The ANSI JOIN syntax uses keywords such as "INNER JOIN", "LEFT JOIN", and "RIGHT JOIN" to specify the type of join.
Copier après la connexion

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