JDNet développeurs: MySQL et les requêtes complexes
Par David KAPOLA, jeudi 13 juillet 2006 à 17:10 :: Lu sur le Web :: #2263 :: rss
Les requêtes de type SELECT …. FROM …. WHERE ne sont pas les seules que l’on peut exécuter ! Bien sûr elles permettent d’effectuer des jointures pour combiner les enregistrements de 2 ou plusieurs tables en évitant que les données se répètent, mais les jointures proposent différentes solutions pour contrôler le flux de données renvoyé.
Cross join (Jointure croisée)
- Def : Renvoie toutes les combinaisons possibles.
- Ex : SELECT * FROM table1 CROSS JOIN table2;
- Def : Jointure par défaut. Les lignes renvoyées correspondent aux intersections entre les tables.
- Def : Limite les résultats à ceux incluant chaque ligne de la table à gauche du "JOIN", ici table1.
- Ex : SELECT * FROM table1 LEFT JOIN table2;
- Def :Limite les résultats à ceux incluant chaque ligne de la table à droite du "JOIN", ici table2.
- Ex : SELECT * FROM table1 RIGHT JOIN table2;
- Def : Toutes les lignes des deux tables sont incluses, et les lignes n'ayant pas de correspondances avec celles de l'autre table sont associées à des NULL. MySQL ne reconnaît pas les jointures externes complètes, mais cela peut être compensé par l'utilisation d'une union.
- Ex : (SELECT nom_plat FROM menu_1)
UNION (SELECT nom_plat FROM menu_2)
UNION (SELECT nom_plat FROM menu_3);
Une sous-requête permet d’établir une requête SQL qui va traiter les données issues d'une seconde requête. La clause WHERE comprend ainsi une autre requête SQL pour limiter les résultats originels, ou pour agréger les informations de plusieurs tables. La sous-requête peut également être placée dans une clause HAVING.
- Ex : SELECT * FROM table WHERE colonne1 = (SELECT colonne2 FROM table2);
SELECT * FROM table WHERE colonne = (SELECT colonne2 FROM table2 WHERE colonne2 = (SELECT colonne3 FROM table3));
- CREATE TEMPORARY TABLE temp SELECT * FROM donnes WHERE a=1;
SELECT * FROM temp WHERE ... ;







Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.