Maison >base de données >tutoriel mysql >Quelle est la différence entre union et unionall dans MySQL
union : effectuez une opération d'union sur plusieurs ensembles de résultats, en excluant les lignes en double, et triez-les en même temps.
union all : effectuez une opération d'union sur plusieurs ensembles de résultats, y compris les lignes en double, sans trier.
Interrogez les informations des employés dont le numéro de département est inférieur à 30 et les informations des employés dont le numéro de département est supérieur à 20 et inférieur à 40.
①. Vérifiez d'abord les informations des employés dont le numéro de service est inférieur à 30.
SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id < 30; ```
Recherchez les informations sur les employés des départements supérieurs à 20 et inférieurs à 40.
SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id BETWEEN 20 and 40;```
③. Utilisez union pour connecter deux tables
SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id < 30 UNION SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id BETWEEN 20 and 40; ```
Les résultats sont triés par défaut et dédupliqués. Les deux tables ont les informations de département n° 30, et les résultats n'apparaissent qu'une seule fois.
④. Ensuite, utilisez union all pour connecter les deux tables
SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id < 30 UNION ALL SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id BETWEEN 20 and 40; ```
Les résultats ne sont ni dédupliqués ni triés. Les résultats triés sont comparés aux résultats ci-dessous. Tout d'abord, interrogez les informations sur les employés entre 20 et 40. puis vérifiez les employés de moins de 30 ans.
⑤ Comparaison des résultats de requête
SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id BETWEEN 20 and 40 UNION ALL SELECT employees_id ,last_name ,salary ,department_id FROM employees WHERE department_id < 30;```
n'est pas trié par défaut.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!