MySQL CROSS JOIN est utilisé pour combiner toutes les possibilités de deux ou plusieurs tables et renvoie le résultat qui contient chaque ligne de toutes les tables contributives. Le CROSS JOIN est également connu sous le nom de CARTESIAN JOIN, qui fournit le produit cartésien de toutes les tables associées. Le produit cartésien peut être expliqué comme toutes les lignes présentes dans le premier tableau multipliées par toutes les lignes présentes dans le deuxième tableau. C'est similaire à Inner Join, où la condition de jointure n'est pas disponible avec cette clause.
CSS pour le retour à la ligne du texte
Nous pouvons le comprendre avec la représentation visuelle suivante où CROSS JOIN renvoie tous les enregistrements de la table1 et de la table2, et chaque ligne est la combinaison des lignes des deux tables.
Syntaxe MySQL CROSS JOIN
Le mot clé CROSS JOIN est toujours utilisé avec l'instruction SELECT et doit être écrit après la clause FROM. La syntaxe suivante récupère tous les enregistrements des deux tables de jointure :
SELECT column-lists FROM table1 CROSS JOIN table2;
Dans la syntaxe ci-dessus, les listes de colonnes sont le nom de la colonne ou du champ que vous souhaitez renvoyer et table1 et table2 sont le nom de la table à partir de laquelle vous récupérez les enregistrements.
Exemple de jointure croisée MySQL
Prenons quelques exemples pour comprendre le fonctionnement de la clause Left Join ou Left Outer Join :
Clause CROSS JOIN pour joindre deux tables
Ici, nous allons créer deux tableaux 'clients' et 'Contacts' qui contient les données suivantes :
Tableau : clients
Tableau : contacts
comment afficher une application dans Android
Pour récupérer tous les enregistrements des deux tables, exécutez la requête suivante :
SELECT * FROM customers CROSS JOIN contacts;
Après une exécution réussie de la requête, elle donnera le résultat suivant :
Lorsque l'instruction CROSS JOIN est exécutée, vous remarquerez qu'elle affiche 42 lignes. Cela signifie que sept lignes de la table des clients sont multipliées par les six lignes de la table des contacts.
REMARQUE : Pour éviter le résultat de colonnes répétées deux fois, il est recommandé d'utiliser des noms de colonnes individuels au lieu de l'instruction SELECT *.
Problème de colonnes ambiguës dans MySQL CROSS JOIN
Parfois, nous devons récupérer les enregistrements de colonnes sélectionnés à partir de plusieurs tables. Ces tableaux peuvent contenir des noms de colonnes similaires. Dans ce cas, l'instruction MySQL CROSS JOIN renvoie une erreur : le nom de la colonne est ambigu. Cela signifie que le nom de la colonne est présent dans les deux tables et que MySQL ne sait pas quelle colonne vous souhaitez afficher. Les exemples suivants l’expliquent plus clairement :
générateur de jetons de chaîne Java
SELECT customer_id, cust_name, income, order_id, price FROM customer CROSS JOIN orders;
Le CROSS JOIN ci-dessus génère une erreur comme indiqué dans l'image ci-dessous :
Ce problème peut être résolu en utilisant le nom de la table avant le nom de la colonne. La requête ci-dessus peut être réécrite comme suit :
Amisha Patel
SELECT customer.customer_id, customer.cust_name, customer.income, orders.order_id, orders.price FROM customer CROSS JOIN orders;
Après avoir exécuté la requête ci-dessus, nous obtiendrons le résultat suivant :
LEFT JOIN avec la clause WHERE
La clause WHERE est utilisée pour renvoyer le filtre résultat du tableau. L'exemple suivant illustre cela avec la clause CROSS JOIN :
SELECT customers.customer_id, customers.cust_name, customers.income, orders.order_id, orders.price FROM customers CROSS JOIN orders USING(customer_id) WHERE price>1500 AND price<5000; < pre> <p>This statement gives the below result:</p> <img src="//techcodeview.com/img/mysql-tutorial/98/mysql-cross-join-7.webp" alt="MySQL CROSS JOIN"> <h3>MySQL CROSS JOIN Multiple Tables</h3> <p>We have already created two tables named ' <strong>customers'</strong> and ' <strong>orders'</strong> . Let us create one more table and name it as ' <strong>contacts' that contains the following data:</strong> </p> <img src="//techcodeview.com/img/mysql-tutorial/98/mysql-cross-join-8.webp" alt="MySQL CROSS JOIN"> <p>Here, we are going to explain CROSS JOIN with LEFT JOIN using three tables. Execute the following statement to join the three table customers, orders, and contacts. In this statement, first CROSS JOIN completed between orders and contacts, and then LEFT JOIN executes according to the specified condition.</p> <pre> SELECT * FROM customer LEFT JOIN(orders CROSS JOIN contacts) ON customer.customer_id=contact_id ORDER BY income; </pre> <p>After successful execution of the above query, it will give the following output:</p> <img src="//techcodeview.com/img/mysql-tutorial/98/mysql-cross-join-9.webp" alt="MySQL CROSS JOIN"> <hr></5000;>
Après une exécution réussie de la requête ci-dessus, le résultat suivant sera généré :
5000;>