Maison >base de données >tutoriel mysql >Quelle est la différence entre union et unionall dans MySQL

Quelle est la différence entre union et unionall dans MySQL

PHPz
PHPzavant
2023-05-30 08:04:051925parcourir

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; ```

Quelle est la différence entre union et unionall dans MySQL

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;```

Quelle est la différence entre union et unionall dans MySQL

③. 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.

Quelle est la différence entre union et unionall dans MySQL

④. 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.

Quelle est la différence entre union et unionall dans MySQL

⑤ 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;```

Quelle est la différence entre union et unionall dans MySQL

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer