Đôi khi bạn có thể cần so sánh hai cột từ cùng một bảng hoặc bảng khác nhau, trong MySQL. MySQL cho phép bạn dễ dàng so sánh hai cột bằng cách sử dụng các toán tử cũng như các truy vấn lồng nhau. Trong bài viết này, chúng ta sẽ xem xét cách so sánh hai cột trong MySQL.
Cách so sánh hai cột trong MySQL
Chúng ta sẽ xem xét các trường hợp sử dụng khác nhau để so sánh hai cột trong MySQL
So sánh hai cột từ cùng một bảng
Giả sử bạn có bảng sau doanh số (id, cost_price, sell_price) và bạn muốn so sánh giá_giá và sell_price cột.
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 | +------+------------+---------------+
Đây là truy vấn SQL chung cho hai cột so sánh (cột1, cột2) trong bảng (bảng1).
mysql> select * from table1 where column1 not in (select column2 from table1);
Trong truy vấn trên, hãy cập nhật table1, column1 và column2 theo yêu cầu của bạn.
Phần thưởng đã đọc:Cách nhận mọi hàng thứ N trong MySQL
Chúng tôi sẽ áp dụng truy vấn này để so sánh hai cột cost_price và sell_price và hiển thị các bản ghi có sự không khớp giữa hai cột.
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 | +------+------------+---------------+
Bạn cũng có thể sử dụng toán tử toán học (<,>, <>) trong trường hợp bạn muốn so sánh hai cột số. Dưới đây là một ví dụ để hiển thị các hàng có giá_giá> giá_bán.
mysql> select * from sales where cost_price>selling_price; +------+------------+---------------+ | id | cost_price | selling_price | +------+------------+---------------+ | 2 | 215 | 145 | | 3 | 310 | 100 | +------+------------+---------------+
Phần thưởng đọc:Cách thêm cột tăng tự động trong MySQL
So sánh hai cột từ các bảng khác nhau
Giả sử bạn cũng có một bảng đơn đặt hàng khác (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 | +------+------------+---------------+
Phần thưởng Đọc:5 công cụ thiết kế cơ sở dữ liệu miễn phí hàng đầu
Đây là truy vấn SQL ở trên được sửa đổi để so sánh hai cột từ các bảng khác nhau table1 và table2
mysql> select * from table1 where column1 not in (select column2 from table2);
Chúng tôi sẽ áp dụng truy vấn trên để so sánh cost_price cột từ bán hàng bảng có giá_giá_bán với đơn đặt hàng bảng.
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 giúp dễ dàng trực quan hóa dữ liệu và theo dõi chúng trong trang tổng quan thời gian thực. Dùng thử Ubiq miễn phí.