Combiner les informations provenant de plusieurs tables de MySQL avec le syndicat

Vous pouvez combiner des informations à partir de plus d'une table de MySQL en utilisant le UNION requête. Avec UNION, les lignes sont récupérées dans une ou plusieurs tables et stockés ensemble, l'un après l'autre, en un seul résultat. Par exemple, si votre requête a sélectionné 6 rangées d'une table et 5 lignes d'une autre table, le résultat devrait contenir 11 lignes.

UNION est utilisé pour combiner les résultats de deux ou plusieurs requêtes de sélection. Les résultats de chaque requête sont ajoutés à l'ensemble de résultat suivant les résultats de la requête précédente. Le format de la UNION de recherche sont les suivantes:

SELECT question UNION ALL SELECT question ...

Vous pouvez combiner autant SELECT les requêtes que vous avez besoin. UN SELECT requête peut inclure toute valide SELECT le format, y compris clauses, LIMITE clauses et ainsi de suite. Les règles pour les requêtes sont

  • Tous les SELECT les requêtes doivent sélectionner le même nombre de colonnes.

  • Les colonnes sélectionnées dans les requêtes doivent contenir le même type de données.

Le jeu de résultats contient toutes les lignes de la première requête, suivies par toutes les lignes de la seconde requête, et ainsi de suite. Les noms de colonnes utilisés dans le jeu de résultats sont les noms de colonnes de la première SELECT requête.

La série de SELECT les requêtes peuvent sélectionner des colonnes différentes de la même table, mais les situations dans lesquelles vous voulez une nouvelle table avec une colonne dans une table suivie d'une autre colonne de la même table sont inhabituelles. Il est beaucoup plus probable que vous voulez combiner des colonnes de différentes tables.

Par exemple, vous pourriez avoir un tableau des membres qui ont démissionné du club (OldMember) Et une table séparée des membres actuels (Membres). Vous pouvez obtenir une liste de tous les membres, à la fois actuelle et a démissionné, avec la requête suivante:

SELECT nom, prénom de l'union membre globaleSélectionner nom, prénom DE OldMember

Le résultat de cette requête est les noms et prénoms de tous les membres actuels, suivis par les noms et prénoms de tous les membres qui ont démissionné.

Selon la façon dont vous avez organisé vos données, vous pourriez avoir des noms en double. Par exemple, peut-être un membre a démissionné, et son nom est dans le OldMember tableau - mais il rejoint à nouveau, si son nom est ajouté à la Membres table. Si vous ne voulez pas de doublons, ne pas inclure le mot TOUS. Si TOUS ne sont pas inclus, les lignes en double ne sont pas ajoutés au résultat.

Tu peux utiliser COMMANDÉ PAR avec chaque SELECT requête, ou vous pouvez utiliser COMMANDÉ PAR avec un UNION interroger de trier toutes les lignes dans le jeu de résultats. Si tu veux COMMANDÉ PAR à appliquer à l'ensemble des résultats, plutôt que de simplement à la requête qu'il suit, utilisez des parenthèses comme suit:

(SELECT Nom from UNION membres globaleSélectionner Nom from OldMember) ORDER BY nomFamille

» » » Combiner les informations provenant de plusieurs tables de MySQL avec le syndicat