MySql查询以查找第二个表

时间:2017-12-05 11:46:17

标签: mysql-workbench

我们正在进行数据库迁移,我们在第二个表中查找额外列时面临一个小问题。

第一张表 - employee_data

col a - id  
col b - name  
col c - age

第二张表 - employee_data_fp

col a - id  
col b - name
col c - age
col d - address
col e - phoneNo

我们尝试通过手动添加额外列并插入数据集来合并第一个和第二个表。请帮助编写查询以查找错过的列。 提前谢谢..

1 个答案:

答案 0 :(得分:0)

除非您计划使用动态SQL构建查询,否则您不需要查询来查找缺少的列。为了简单起见,为什么不使用SHOW CREATE TABLE

SHOW CREATE TABLE table2;

这会将create语句回显到控制台。除了显示列名称外,它还将显示类型,约束,默认值以及一些其他可能有用的内容。

如果您需要一个查询,该查询显示第二个表中唯一未出现在第一个表中的列,请尝试以下操作:

SELECT t2.COLUMN_NAME
FROM
(
    SELECT COLUMN_NAME
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE
        TABLE_SCHEMA = 'yourDB' AND
        TABLE_NAME = 'table2'
) t2
LEFT JOIN
(
    SELECT COLUMN_NAME
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE
        TABLE_SCHEMA = 'yourDB' AND
        TABLE_NAME = 'table1'
) t1
    ON t2.COLUMN_NAME = t1.COLUMN_NAME
WHERE t1.COLUMN_NAME IS NULL;