sql >> データベース >  >> RDS >> Mysql

MySQLで2つの列を比較する方法

    MySQLで、同じテーブルまたは異なるテーブルの2つの列を比較する必要がある場合があります。 MySQLでは、演算子とネストされたクエリを使用して2つの列を簡単に比較できます。この記事では、MySQLの2つの列を比較する方法を見ていきます。


    MySQLで2つの列を比較する方法

    MySQLの2つの列を比較するために、さまざまなユースケースを見ていきます


    同じテーブルの2つの列を比較する

    次のテーブルがあるとしますsales(id、cost_price、selling_price) cost_priceを比較したい およびselling_price 列。

    mysql> create table sales(id int, cost_price int, selling_price int);
    
    mysql> insert into sales(id, cost_price, selling_price)
         values(1, 135, 215),
         (2,215, 145),
         (3,310,100);
    
    mysql> select * from sales;
    +------+------------+---------------+
    | id   | cost_price | selling_price |
    +------+------------+---------------+
    |    1 |        135 |           215 |
    |    2 |        215 |           145 |
    |    3 |        310 |           100 |
    +------+------------+---------------+
    

    これは、テーブル(table1)の2つの比較列(column1、column2)に対する一般的なSQLクエリです。

    mysql> select * from table1
           where column1 not in 
           (select column2 from table1);

    上記のクエリで、要件に応じてtable1、column1、column2を更新します。

    ボーナスリード:MySQLでN行ごとに取得する方法

    このクエリを適用して、2つの列を比較します cost_price およびselling_price 、および2つの列の間に不一致があるレコードを表示します。

    mysql> select * from sales
           where cost_price not in
           (select selling_price from sales);
    +------+------------+---------------+
    | id   | cost_price | selling_price |
    +------+------------+---------------+
    |    1 |        135 |           215 |
    |    3 |        310 |           100 |
    +------+------------+---------------+
    

    2つの数値列を比較する場合は、数学演算子(<、>、<>)を使用することもできます。次に、cost_price>selling_price。

    の行を表示する例を示します。
    mysql> select * from sales where cost_price>selling_price;
    +------+------------+---------------+
    | id   | cost_price | selling_price |
    +------+------------+---------------+
    |    2 |        215 |           145 |
    |    3 |        310 |           100 |
    +------+------------+---------------+

    ボーナスリード:MySQLに自動インクリメント列を追加する方法


    異なるテーブルの2つの列を比較する

    別のテーブルorders(id、cost_price、selling_price)もあるとします。

    mysql> create table orders(id int, cost_price int, selling_price int);
    
    mysql> insert into orders(id, cost_price, selling_price)
           values(1, 235, 215),
           (2,205, 105),
           (3,320,120);
    
    mysql> select * from orders;
    +------+------------+---------------+
    | id   | cost_price | selling_price |
    +------+------------+---------------+
    |    1 |        235 |           215 |
    |    2 |        205 |           105 |
    |    3 |        320 |           120 |
    +------+------------+---------------+

    ボーナスリード:トップ5の無料データベース設計ツール

    これは、異なるテーブルtable1とtable2の2つの列を比較するように変更された上記のSQLクエリです

    mysql> select * from table1
           where column1 not in 
          (select column2 from table2);

    上記のクエリを適用して、 cost_priceを比較します。 販売の列 sales_priceのテーブル 注文 テーブル。

    mysql> select * from sales
           where cost_price not in 
          (select selling_price from orders);
    +------+------------+---------------+
    | id   | cost_price | selling_price |
    +------+------------+---------------+
    |    1 |        135 |           215 |
    |    3 |        310 |           100 |
    +------+------------+---------------+
    

    Ubiqを使用すると、データを簡単に視覚化し、リアルタイムのダッシュボードで監視できます。 Ubiqを無料でお試しください。

    1. SQL Serverに監査テーブルを実装するための提案はありますか?

    2. SQL Server一括挿入–パート2

    3. mycliを使用して、ターミナルでMariaDB/MySQLを快適に学習してください。

    4. 外部キーの参照列リストと一致する主キーまたは候補キーが参照テーブルにありません