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.