Comparando duas tabelas no MySQL

Bom dia pessoal,

Aqui vai uma dica legal pra quem está com um problema não muito normal, ter que comparar duas tabelas do MySQL, vendo quais campos que não existem na tabela alvo. Com essa query marota é possível de fazer isso facilmente:

[sql]
SELECT
c.table_name,
GROUP_CONCAT(c.column_name) colunas
FROM
information_schema.columns c
WHERE
c.table_schema=’meu_banco’
AND c.table_name LIKE ‘tb_alguma_coisa%’
AND c.column_name = ‘id_coluna_refinamento_maior’
AND c.column_name NOT IN (
SELECT
xx.column_name
FROM
information_schema.columns xx
WHERE
xx.table_schema = c.table_schema
AND xx.table_name LIKE ‘tb_alvo_da_comparacao%’
)
GROUP BY
c.table_name
ORDER BY
1 ASC
[/sql]

Basicamente esta query usa os recursos do information schema do MySQL, que nada mais é do que um banco gerenciado pelo próprio MySQL para armazenar as informações dos seus bancos. Mais detalhes no endereço abaixo:

http://dev.mysql.com/doc/refman/5.0/en/information-schema.html

Abraços e até a próxima.