English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Nous pouvons utiliser le "croisé" sans condition. La jointure croisée donne des résultats sous forme de produit cartésien. Par exemple, si une table contient3des enregistrements, tandis que l'autre table contient2Si la première table contient des enregistrements, le premier enregistrement correspondra à tous les enregistrements de la deuxième table. Ensuite, le même processus sera répété pour le deuxième enregistrement, et ainsi de suite.
Créer la première table
mysql> CREATE table ForeignTableDemo - > ( - > Id int, - > Name varchar(10, 0), - > FK int - > );
Créer la deuxième table
mysql> CREATE table PrimaryTableDemo - > ( - > FK int, - > Address varchar(10, 0), - > clé primaire(FK) - > );
mysql> ALTER table ForeignTableDemo add constraint FKConst foreign key(FK) references PrimaryTableDemo(FK); Enregistrements: 0 Duplicates: 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');
Afficher les enregistrements de la deuxième table.
mysql> SELECT * from PrimaryTableDemo;
Voici la sortie de la requête précédente.
+----+---------+ | FK | Adresse | +----+---------+ | 1 | US | | 2 | UK | | 3 | Inconnu | +----+---------+ 3 rows in set (0.00 sec)
Ajouter un enregistrement à la première table.
mysql> INSERT into ForeignTableDemo values (1,'John',1); mysql> INSERT into ForeignTableDemo values (2,'Bob',2);
Afficher les enregistrements en utilisant la commande SELECT.
mysql> SELECT * from ForeignTableDemo;
Voici la sortie.
+------+------+------+ | Id | Nom | FK | +------+------+------+ | 1 | John | 1 | | 2 | Bob | 2 | +------+------+------+ 2 rows in set (0.00 sec)
Nous avons appliqué des contraintes de clé étrangère à toutes les tables. Maintenant, voyons la syntaxe pour utiliser une 'croix join' sans ON.
mysql> SELECT ForeignTableDemo.Id, ForeignTableDemo.Name, PrimaryTableDemo.Address - > from ForeignTableDemo - > croix join PrimaryTableDemo;
Ceci est la sortie.
+------+------+---------+ | Id | Nom | Adresse | +------+------+---------+ | 1 | John | US | | 2 | Bob | US | | 1 | John | UK | | 2 | Bob | UK | | 1 | John | Inconnu | | 2 | Bob | Inconnu | +------+------+---------+ 6 rows in set (0.00 sec)