Ibland kan du behöva jämföra två kolumner från samma tabell eller annan tabell, i MySQL. MySQL låter dig enkelt jämföra två kolumner med hjälp av operatorer såväl som kapslade frågor. I den här artikeln kommer vi att titta på hur man jämför två kolumner i MySQL.
Hur man jämför två kolumner i MySQL
Vi kommer att titta på olika användningsfall för att jämföra två kolumner i MySQL
Jämför två kolumner från samma tabell
Låt oss säga att du har följande tabell försäljning(id, kostnadspris, försäljningspris) och du vill jämföra kostnadspris och försäljningspris kolumner.
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 |
+------+------------+---------------+
Här är den allmänna SQL-frågan för två jämförelsekolumner (kolumn1, kolumn2) i en tabell (tabell1).
mysql> select * from table1
where column1 not in
(select column2 from table1); Uppdatera tabell1, kolumn1 och kolumn2 i ovanstående fråga enligt dina krav.
Bonusläs:Hur man får varje N:te rad i MySQL
Vi kommer att använda den här frågan för att jämföra två kolumner kostnadspris och försäljningspris , och visa poster där det finns en oöverensstämmelse mellan två kolumner.
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 |
+------+------------+---------------+
Du kan också använda matematiska operatorer (<,>, <>) om du vill jämföra två numeriska kolumner. Här är ett exempel för att visa rader där cost_price>selling_price.
mysql> select * from sales where cost_price>selling_price; +------+------------+---------------+ | id | cost_price | selling_price | +------+------------+---------------+ | 2 | 215 | 145 | | 3 | 310 | 100 | +------+------------+---------------+
Bonusläsning:Hur man lägger till kolumn för automatisk ökning i MySQL
Jämför två kolumner från olika tabeller
Låt oss säga att du också har ett annat bord order(id, kostnadspris, försäljningspris)
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 |
+------+------------+---------------+ Bonusläsning:Topp 5 gratis verktyg för databasdesign
Här är SQL-frågan ovan modifierad för att jämföra två kolumner från olika tabeller tabell1 och tabell2
mysql> select * from table1
where column1 not in
(select column2 from table2); Vi använder ovanstående fråga för att jämföra kostnadspris kolumn från försäljning tabell med säljningspris med beställningar bord.
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 gör det enkelt att visualisera data och övervaka dem i realtidsinstrumentpaneler. Prova Ubiq gratis.