English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Généralement, nous utilisons ON en MySQL. Dans les jointures, nous utilisons ON sur un ensemble de colonnes. WHEN deux tables partagent le nom complet de la colonne qu'elles connectent, USING est très utile.
Exemple ouvert.
Créer notre première table.
mysql> CREATE table ForeignTableDemo -> ( -> Id int, -> Name varchar(100), - > FK int - > );
Créer la deuxième table.
mysql> CREATE table PrimaryTableDemo - > ( - > FK int, - > Address varchar(100), - > primary key(FK) - > );
Maintenant, ajoutons la contrainte.
mysql> ALTER table ForeignTableDemo add constraint FKConst foreign key(FK) references PrimaryTableDemo(FK); Records: 0 Duplicats: 0 Avertissements: 0
Ajouter un enregistrement à la deuxième table.
mysql> INSERT into PrimaryTableDemo values(1,'US'); mysql> INSERT into PrimaryTableDemo values(2,'UK'); mysql> INSERT into PrimaryTableDemo values (3,'Inconnu');
Affichez tous les enregistrements.
mysql> SELECT * from PrimaryTableDemo;
Voici la sortie.
+----+---------+ | FK | Adresse | +----+---------+ | 1 | US | | 2 | UK | | 3 | Inconnu | +----+---------+ 3 rows in set (0.00 sec)
Maintenant, ajoutons l'enregistrement à la première table.
mysql> INSERT into ForeignTableDemo values (1,'John',1; mysql> INSERT into ForeignTableDemo values (2,'Bob',2;
Maintenant, montrons tous les enregistrements de la première table.
mysql> SELECT * from ForeignTableDemo;
Ceci est la sortie.
+------+------+------+ | Id | Nom | FK | +------+------+------+ | 1 | John | 1 | | 2 | Bob | 2 | +------+------+------+ 2 rows in set (0.00 sec)
Voici une requête de jointure directe qui affiche uniquement les enregistrements correspondants. Nous l'avons utilisé ici.
mysql> SELECT ForeignTableDemo.Id, ForeignTableDemo.Name, PrimaryTableDemo.Address - > from ForeignTableDemo - > join PrimaryTableDemo - > on ForeignTableDemo.FK = PrimaryTableDemo.FK;
Voici la sortie.
+------+------+---------+ | Id | Nom | Adresse | +------+------+---------+ | 1 | John | US | 2 | Bob | UK +------+------+---------+ 2 rows in set (0.14 sec)
Exemples d'utilisation.
Voici la syntaxe utilisée dans MySQL avec USING, où FK est affiché = 1enregistrements.
mysql> select *from ForeignTableDemo join PrimaryTableDemo using(FK) where FK=1;
Ceci est la sortie.
+------+------+------+---------+ | FK | Id | Nom | Adresse | +------+------+------+---------+ | 1 | 1 | John | US +------+------+------+---------+ 1 row in set (0.09 sec)