English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ce tutoriel vous présente la syntaxe et des exemples de l'opérateur UNION MySQL.
L'opérateur UNION MySQL est utilisé pour combiner les résultats de deux ou plusieurs requêtes SELECT en un ensemble de résultats unique. Plusieurs requêtes SELECT suppriment les données redondantes.
Format de syntaxe de l'opérateur UNION MySQL :
SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions] UNION [ALL | DISTINCT] SELECT expression1, expression2, ... expression_n FROM tables [WHERE conditions];
expression1, expression2, ... expression_n: Colonnes à rechercher.
tables: Tableau de données à rechercher.
WHERE conditions: Optionnel, condition de recherche.
DISTINCT: Optionnel, supprimer les données redondantes dans l'ensemble de résultats. Par défaut, l'opérateur UNION supprime déjà les données redondantes, donc le modificateur DISTINCT n'a pas d'effet sur les résultats.
ALL: Optionnel, retourner tous les ensembles de résultats, y compris les données redondantes.
Dans ce tutoriel, nous allons utiliser w3base de données de exemple codebox.
Voici les données sélectionnées à partir de la table "Websites":
mysql> SELECT * FROM Websites; +----+--------------+---------------------------+-------+---------+ | id | name | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 基础教程网 | http://fr.oldtoolbag.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+
Voici les données de l'APP "apps":
mysql> SELECT * FROM apps; +----+------------+-------------------------+---------+ | id | app_name | url | country | +----+------------+-------------------------+---------+ | 1 | QQ APP | http://im.qq.com/ | CN | | 2 | 微博 APP | http://weibo.com/ | CN | | 3 | 淘宝 APP | https://www.taobao.com/ | CN | +----+------------+-------------------------+---------+ 3 rows in set (0.00 sec)
La requête SQL suivante sélectionne toutes les lignes des tables "Websites" et "apps"Différentscountry (seulement les valeurs différentes) :
SELECT country FROM Websites UNION SELECT country FROM apps ORDER BY country;
Le résultat de l'exécution de l'SQL suivant est le suivant :
Remarque :UNION ne peut pas être utilisé pour lister toutes les valeurs country de deux tables. Si certains sites web et des applications viennent du même pays, chaque pays ne sera listé qu'une seule fois. UNION sélectionnera uniquement les valeurs différentes. Utilisez UNION ALL pour sélectionner les valeurs redondantes !
La requête SQL suivante utilise UNION ALL pour sélectionner des enregistrements à partir des tables "Websites" et "apps"Touscountry (y compris les valeurs redondantes) :
SELECT country FROM Websites UNION ALL SELECT country FROM apps ORDER BY country;
Le résultat de l'exécution de l'SQL suivant est le suivant :
La requête SQL suivante utilise UNION ALL pour sélectionner des enregistrements à partir des tables "Websites" et "apps"TousLes données de la Chine (CN) (y compris les valeurs redondantes) :
SELECT country, name FROM Websites WHERE country='CN' UNION ALL SELECT country, app_name FROM apps WHERE country='CN' ORDER BY country;
Le résultat de l'exécution de l'SQL suivant est le suivant :