2017-06-22 22 views
0

Informix DBで2つの同一のテーブルを比較し、差分行を取得する方法はありますか?2つの同一のテーブルを比較し、差分行を取得する

IDがプライマリキーであることを考慮してください。

TABLE A  

ID NAME EMAIL    PROFILE 
a1 ABC  [email protected]  student 
a2 XYZ  [email protected]  student 
a3 LMN  [email protected]  Staff 

TABLE B 

ID NAME EMAIL    PROFILE 
a1 ABC  [email protected]  student 
a2 XYZ  [email protected]  student 
a3 LMN  [email protected]  student 

親切

OUTPUTがあるべきTABLE Bと一致していない表Aから行を取得するためのSQLをフレーミングで私を助ける:

ID NAME EMAIL    PROFILE 
a3 LMN  [email protected]  Staff 
+0

ます。https://のstackoverflow .com/questions/2077807/sql-query-to-return-differences-two-tablesはこれを読んだら、 – Kuru

+0

これは重複しています – kielou

+0

検索を試しましたか?あなたの仕事のために既にここにたくさんの例があります –

答えて

0
SELECT * 
FROM TABLE_A 
      LEFT JOIN TABLE_B 
       ON TABLE_A.ID = TABLE_B.ID 
        AND TABLE_A.[NAME] = TABLE_B.[NAME] 
        AND TABLE_A.EMAIL = TABLE_B.ID 
        AND TABLE_A.[PROFILE] = TABLE_B.[PROFILE] 
WHERE TABLE_B.[NAME] IS NULL 
+0

角括弧引用符は、MS SQL ServerとSybase特有のものです。他のDBMSはそれをサポートしていません。 Informixでは、カラム名として 'name'と 'profile'を使用しても、引用符は引用されません。 –

+0

ありがとうSimone&Jonathan –

関連する問題