Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So vergleichen Sie zwei Spalten in MySQL

Manchmal müssen Sie in MySQL zwei Spalten aus derselben oder einer anderen Tabelle vergleichen. MySQL ermöglicht Ihnen den einfachen Vergleich zweier Spalten mithilfe von Operatoren sowie verschachtelten Abfragen. In diesem Artikel sehen wir uns an, wie man zwei Spalten in MySQL vergleicht.


Wie man zwei Spalten in MySQL vergleicht

Wir werden verschiedene Anwendungsfälle betrachten, um zwei Spalten in MySQL zu vergleichen


Zwei Spalten derselben Tabelle vergleichen

Nehmen wir an, Sie haben die folgende Tabelle sales(id, cost_price, selling_price) und Sie möchten cost_price vergleichen und Verkaufspreis Spalten.

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 ist die generische SQL-Abfrage, um zwei Spalten (Spalte1, Spalte2) in einer Tabelle (Tabelle1) zu vergleichen.

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

Aktualisieren Sie in der obigen Abfrage table1, column1 und column2 gemäß Ihren Anforderungen.

Bonuslektüre:So erhalten Sie jede n-te Zeile in MySQL

Wir wenden diese Abfrage an, um zwei Spalten cost_price zu vergleichen und Verkaufspreis , und zeigt Datensätze an, bei denen es eine Diskrepanz zwischen zwei Spalten gibt.

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

Sie können auch mathematische Operatoren (<,>, <>) verwenden, falls Sie zwei numerische Spalten vergleichen möchten. Hier ist ein Beispiel für die Anzeige von Zeilen mit 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-Lesetext:So fügen Sie eine automatische Inkrement-Spalte in MySQL hinzu


Zwei Spalten aus verschiedenen Tabellen vergleichen

Nehmen wir an, Sie haben auch eine andere Tabelle orders(id, cost_price, sell_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 |
+------+------------+---------------+

Bonuslektüre:Top 5 der kostenlosen Datenbankdesign-Tools

Hier ist die obige SQL-Abfrage, die geändert wurde, um zwei Spalten aus verschiedenen Tabellen table1 und table2 zu vergleichen

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

Wir wenden die obige Abfrage an, um cost_price zu vergleichen Spalte von Verkäufe Tabelle mit Verkaufspreis mit Bestellungen Tabelle.

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 macht es einfach, Daten zu visualisieren und sie in Echtzeit-Dashboards zu überwachen. Testen Sie Ubiq kostenlos.