sql >> Database >  >> RDS >> Mysql

Hoe twee kolommen in MySQL te vergelijken

Soms moet u in MySQL twee kolommen uit dezelfde tabel of een andere tabel vergelijken. Met MySQL kunt u eenvoudig twee kolommen vergelijken met zowel operators als geneste query's. In dit artikel zullen we bekijken hoe je twee kolommen in MySQL kunt vergelijken.


Hoe twee kolommen in MySQL te vergelijken

We zullen verschillende gebruiksscenario's bekijken om twee kolommen in MySQL te vergelijken


Vergelijk twee kolommen uit dezelfde tabel

Stel dat u de volgende tabel sales(id, cost_price, selling_price) . heeft en u wilt cost_price vergelijken en selling_price kolommen.

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 |
+------+------------+---------------+

Hier is de generieke SQL-query om twee kolommen (kolom1, kolom2) in een tabel (tabel1) te vergelijken.

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

Werk in de bovenstaande zoekopdracht tabel1, kolom1 en kolom2 bij volgens uw vereisten.

Bonus lezen:hoe u elke N-de rij in MySQL kunt krijgen

We zullen deze zoekopdracht toepassen om twee kolommen cost_price te vergelijken en selling_price , en records weergeven waar twee kolommen niet overeenkomen.

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 |
+------+------------+---------------+

U kunt ook wiskundige operatoren (<,>, <>) gebruiken als u twee numerieke kolommen wilt vergelijken. Hier is een voorbeeld om rijen weer te geven waarbij cost_price>selling_price.

mysql> select * from sales where cost_price>selling_price;
+------+------------+---------------+
| id   | cost_price | selling_price |
+------+------------+---------------+
|    2 |        215 |           145 |
|    3 |        310 |           100 |
+------+------------+---------------+

Bonus lezen:hoe u een kolom voor automatisch verhogen kunt toevoegen in MySQL


Vergelijk twee kolommen uit verschillende tabellen

Laten we zeggen dat u ook een andere tafel heeft 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 |
+------+------------+---------------+

Bonus Lezen:Top 5 gratis hulpprogramma's voor databaseontwerp

Hier is de bovenstaande SQL-query aangepast om twee kolommen uit verschillende tabellen te vergelijken table1 en table2

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

We zullen de bovenstaande zoekopdracht toepassen om cost_price te vergelijken kolom uit verkoop tabel met selling_price met bestellingen tafel.

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 maakt het eenvoudig om data te visualiseren en te monitoren in realtime dashboards. Probeer Ubiq gratis.

  1. Een nieuw databasediagram maken met MySQL Workbench

  2. Hoe tel je alle rijen bij gebruik van SELECT met LIMIT in MySQL-query?

  3. Hoe een JDBC-toepassing te beschermen tegen SQL-injectie?

  4. Rownum in postgresql