ホームページ >データベース >mysql チュートリアル >MySQLのunionとunionallの違いは何ですか

MySQLのunionとunionallの違いは何ですか

PHPz
PHPz転載
2023-05-30 08:04:051928ブラウズ

union: 重複行を除く複数の結果セットに対してユニオン演算を実行し、それらを同時に並べ替えます。

union all: ソートせずに、重複行を含む複数の結果セットに対して結合操作を実行します。

部門が 30 人未満の従業員の情報と、部門が 20 人を超え 40 人未満の従業員の情報をクエリします。

①. まず、部門番号が 30 未満の従業員の情報を照会します。

   SELECT 
               employees_id
               ,last_name
               ,salary
               ,department_id
     FROM      employees
    WHERE      department_id < 30; ```

MySQLのunionとunionallの違いは何ですか

20 人以上 40 人未満の部門の従業員情報をクエリします。

   SELECT 
           employees_id
           ,last_name
           ,salary
           ,department_id
     FROM  
           employees
    WHERE 
           department_id BETWEEN 20 and 40;```

MySQLのunionとunionallの違いは何ですか

③. ユニオンを使用して 2 つのテーブルを接続します

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

結果はデフォルトで並べ替えられ、重複が排除されます。両方のテーブルには部門情報 No. 30 があります。結果 1 回だけ表示されます。

MySQLのunionとunionallの違いは何ですか

④. 次に、union all を使用して 2 つのテーブルを接続します

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

結果は重複排除または並べ替えられません。並べ替えられた結果は結果と比較されますまず、20 歳以上 40 歳未満の従業員の情報を照会し、30 歳未満の従業員の情報を確認します。

MySQLのunionとunionallの違いは何ですか

#⑤. クエリ結果の比較

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

MySQLのunionとunionallの違いは何ですか

#デフォルトでは並べ替えが行われません。

以上がMySQLのunionとunionallの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。