Mysql
 sql >> Database >  >> RDS >> Mysql

Come confrontare due colonne in MySQL

A volte potrebbe essere necessario confrontare due colonne della stessa tabella o di una tabella diversa, in MySQL. MySQL ti consente di confrontare facilmente due colonne utilizzando operatori e query nidificate. In questo articolo vedremo come confrontare due colonne in MySQL.


Come confrontare due colonne in MySQL

Esamineremo diversi casi d'uso per confrontare due colonne in MySQL


Confronta due colonne della stessa tabella

Supponiamo che tu abbia la seguente tabella sales(id, cost_price, selling_price) e vuoi confrontare costo_prezzo e prezzo_vendita colonne.

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

Ecco la query SQL generica per confrontare due colonne (colonna1, colonna2) in una tabella (tabella1).

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

Nella query precedente, aggiorna la tabella1, la colonna1 e la colonna2 in base alle tue esigenze.

Bonus Leggi:Come ottenere ogni ennesima riga in MySQL

Applicheremo questa query per confrontare due colonne costo_prezzo e prezzo_vendita e visualizzare i record in cui è presente una mancata corrispondenza tra due colonne.

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

Puoi anche utilizzare operatori matematici (<,>, <>) nel caso in cui desideri confrontare due colonne numeriche. Ecco un esempio per visualizzare le righe in cui costo_prezzo>prezzo_vendita.

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

Bonus da leggere:come aggiungere una colonna di incremento automatico in MySQL


Confronta due colonne di tabelle diverse

Supponiamo che tu abbia anche un'altra tabella 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 Leggi:I 5 migliori strumenti gratuiti per la progettazione di database

Ecco la query SQL sopra modificata per confrontare due colonne di tabelle diverse table1 e table2

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

Applicheremo la query precedente per confrontare cost_price colonna da vendite tabella con prezzo_vendita con ordini tabella.

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 semplifica la visualizzazione dei dati e il monitoraggio in dashboard in tempo reale. Prova Ubiq gratuitamente.