2017-12-05 1 views
1

私たちはデータベースの移行を進めており、次のように2番目のテーブルで余分なカラムを見つける際には少し問題があります。2番目のテーブルに余分なカラムがあるかどうかを調べるMySqlクエリ

まずテーブル - 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 

。不足している列を見つけるためのクエリを書くのを助けてください。 ありがとうございます。

答えて

0

動的SQLを使用してクエリを作成する場合を除き、実際には不足している列を見つけるためのクエリは必要ありません。それをシンプルに保つために、なぜちょうどSHOW CREATE TABLEを使用しない:

SHOW CREATE TABLE table2; 

これは、コンソールに作成する声明をエコーし​​ます。列名を明らかにすることに加えて、型、制約、デフォルト値、および潜在的に有用な他のいくつかのものも表示されます。 ..あなたの提案の作品を

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

おかげでティムが、我々は最初と第二のテーブルを追加している:

あなたが最初に表示されていない第二のテーブルに一意の列を表示するクエリが必要な場合は、これを試してみてください表。これを続けると、欠落した列を比較して追加するのにさらに時間がかかることがあります。 – SnehaBNaveen

関連する問題