私は2つのmySQLテーブルを比較して、その違いを見つけようとしています。レコードはTableAでは見つかるかもしれませんが、TableBでは見つからないかもしれません。mySQLを使用して2つのテーブルを比較する
TableAの
Name A1 A2 B1 B2
------------------------
John 11 12 21 23
John 11 12 21 22
John 33 34 31 33
Mary 41 42 54 55
Mary 71 72 81 82
Mary 41 42 51 52
TableBの
Name A1 A2 B1 B2 C D
---------------------------------
John 11 12 21 22 999 999
John 21 23 11 12 999 999
John 31 32 33 34 999 999
Mary 41 42 51 52 999 999
Mary 54 55 41 42 999 999
列A1とA2は、グループとみなされ、B1とB2は、他のグループと見なされます。
私のテーブルは以下の通りです。両方のテーブルで見つけ考慮すべき記録のために、私は2つのテーブルについて
- TableA(A1,A2) = TableB(A1,A2) AND TableA(B1,B2) = TableB(B1,B2)
OR
- TableA(A1,A2) = TableB(B1,B2) AND TableA(B1,B2) = TableB(A1,A2)
を必要とし、上記の、私はテーブルBのジョンの全てにテーブルAのジョンの全てを比較し、すべてのだろうテーブルBのメアリーのすべてにテーブルAのメアリーの。
私は出力
Name A1 A2 B1 B2 C D
-----------------------------------------------
John 31 32 33 34 999 999 (from TableB)
Mary 41 42 54 55 (from TableA)
Mary 71 72 81 82 (from TableA)
Mary 54 55 41 42 999 999 (from TableB)
私はMySQLへの新たなんだ、と上記の私が開始する場所さえわからないように私にはとても複雑なようだを取得する必要があります。
本当にありがとうございます。
テーブル「A」の「John 33 3431 33」行が結果に表示されないのはなぜですか? 'B 'から' John 31 32 33 34 999 999 'が出現するのはなぜですか? –
@ypercube 'TableB'に' John 31 32 33 34'があるので。これはルール「TableA(A1、A2)= TableB(B1、B2)AND TableA(B1、B2)= TableB(A1、A2)」に対応する。 –
ええ、 '32 <> 33' ... –