タイトルの言い方がよくわかりませんが、この 2 日間クエリを書こうとしていて、イライラしています。以下の私のテーブル構造を見てください:
----------------------
| TABLE A |
----------------------
| FIELD 1 | FIELD 2 |
----------------------
| X | A |
| X | B |
| Y | C |
| Y | D |
| Y | E |
| Z | F |
---------------------
----------------------
| TABLE B |
----------------------
| PK FIELD | FIELD 2 |
----------------------
| 1 | X |
| 2 | Y |
| 3 | Z |
----------------------
1
|
|
|
*
------------------------
| TABLE C |
------------------------
| FK FIELD | FIELD 1 |
------------------------
| 1 | A |
| 1 | B |
| 2 | C |
| 2 | D |
| 3 | E |
------------------------
基本的に、テーブル A のデータは DB にインポートされ、テーブル B とテーブル C に手動で追加されたデータが正しいことを確認するための参照として使用されます。テーブル A には、他のテーブルとのリレーションシップはありません。テーブル B とテーブル C は、互いに 1 対多の関係にあります (テーブル B は「1」側にあります)。
[テーブル B].[フィールド 2] = [テーブル A].[フィールド 1] が [テーブル C] .[フィールド 1] は [テーブル A].[フィールド 2] と同じではありません。
私が期待している結果 (上記のデータと同様) は次のとおりです。
- Y、E にリンクされていないため
- Z、F ではなく E にリンクされているため
これは私が試したことです(とりわけ):
SELECT [Table B].[Field 2], [Table C].[Field 1], [Table A].[Field 2] AS CorrectItem
FROM [Table B] INNER JOIN
[Table C] ON [Table B].[Field 2] = [Table C].[Field 1] INNER JOIN
[Table A] ON [Table B].[PK Field] = [Table A].[FK Field] AND
[Table C].[Field 1] <> [Table A].[Field 2]
ORDER BY [Table B].[Field 2]
しかし、データが間違っている可能性のあるすべての可能な組み合わせを私に与えているので、これは明らかに間違っています。
私は途方に暮れており、それは単純なことだと確信していますが、どこが間違っているのかわかりません。
ありがとう