Às vezes você pode precisar comparar duas colunas da mesma tabela ou tabela diferente, no MySQL. O MySQL permite comparar facilmente duas colunas usando operadores, bem como consultas aninhadas. Neste artigo, veremos como comparar duas colunas no MySQL.
Como comparar duas colunas no MySQL
Veremos diferentes casos de uso para comparar duas colunas no MySQL
Compare duas colunas da mesma tabela
Digamos que você tenha a seguinte tabela sales(id, cost_price, selling_price) e você deseja comparar cost_price e selling_price colunas.
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 | +------+------------+---------------+
Aqui está a consulta SQL genérica para duas colunas de comparação (coluna1, coluna2) em uma tabela (tabela1).
mysql> select * from table1 where column1 not in (select column2 from table1);
Na consulta acima, atualize table1, column1 e column2 conforme sua necessidade.
Bônus de leitura:Como obter cada enésima linha no MySQL
Aplicaremos esta consulta para comparar duas colunas cost_price e selling_price , e exibe registros onde há uma incompatibilidade entre duas colunas.
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 | +------+------------+---------------+
Você também pode usar operadores matemáticos (<,>, <>) caso queira comparar duas colunas numéricas. Aqui está um exemplo para exibir linhas onde cost_price>selling_price.
mysql> select * from sales where cost_price>selling_price; +------+------------+---------------+ | id | cost_price | selling_price | +------+------------+---------------+ | 2 | 215 | 145 | | 3 | 310 | 100 | +------+------------+---------------+
Bônus de leitura:Como adicionar coluna de incremento automático no MySQL
Compare duas colunas de uma tabela diferente
Digamos que você também tenha outra tabela 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 | +------+------------+---------------+
Bônus de leitura:as 5 principais ferramentas gratuitas de design de banco de dados
Aqui está a consulta SQL acima modificada para comparar duas colunas de tabelas diferentes table1 e table2
mysql> select * from table1 where column1 not in (select column2 from table2);
Aplicaremos a consulta acima para comparar cost_price coluna de vendas tabela com selling_price com pedidos tabela.
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 | +------+------------+---------------+
O Ubiq facilita a visualização de dados e o monitoramento em painéis em tempo real. Experimente o Ubiq gratuitamente.