に不一致項目を決定します。私はこれに似たテーブルを持っている設定
#1
OriginalID | Area
========== | ====
2 | Abdomen
3 | Abdomen
#2
Area | Part
==== | ====
Abdomen| Abdomen
Bottom | Bottom
#3
Part | OriginalID
==== | ==========
Abdomen| 2
Bottom | 3
望ましい結果:
:OriginalID | Area | Part
========== | ==== | ====
3 | Abdomen | NULL
私は私がテーブルを更新することができ、上記把握したら
#3
Part | OriginalID
==== | ==========
Abdomen| 2
Bottom | 3
Abdomen| 3
希望の結果を得るために、私はそれが当初assig 50にする(表#1
)が、表#3
にその特定のArea
の対応関係はありません。
ここで、#1
のArea
が同じID
の#3
に関連付けられていないかどうかを調べたいと思います。 #3
は、ID
とPart
の多対多の関係です。 Area
は今や独自のテーブルに振り出されました。しかし、それは#1
に保存されています。残念ながら、まだ使用されていましたが、#1
のArea
の関係を修正するためにいくつかのコードをリファクタリングするようになりましたので、#2
に適切に移植されていません。
#2
多対多の関係は、Area
とPart
の間にありますか。
Area
の関係は、SQLのある#3
では説明されていません。それはコンピュータが私のためにそれを行うことがいいですが、私はかなりこれが行われる方法について私の頭を包むことはできません。
ありがとうございます!
は、ここでいくつかのテストデータ
CREATE TABLE #1
(
OriginalID INT NOT NULL,
Area VARCHAR(50) NOT NULL
)
CREATE TABLE #2
(
Area VARCHAR(50) NOT NULL,
Part VARCHAR(50) NOT NULL
)
CREATE TABLE #3
(
Part VARCHAR(50) NOT NULL,
OriginalID INT NOT NULL
)
INSERT INTO #1 VALUES
(2, 'Abdomen'),
(3, 'Abdomen')
INSERT INTO #2 VALUES
('Abdomen', 'Abdomen'),
('Bottom', 'Bottom')
INSERT INTO #3 VALUES
('Abdomen', 2),
('Bottom', 3)
DROP TABLE #1
DROP TABLE #2
DROP TABLE #3
ジェイソンの応答がNULL
結果で
SELECT a.Area
FROM #1 AS a
WHERE NOT EXISTS (
SELECT *
FROM #2 as b
INNER JOIN #3 as c
ON b.Part = c.Part
WHERE a.Area = b.Area)
結果、現在間違っています。
サンプル・データ、所望の結果は、あなたが何をしたいのか説明するのに役立つでしょう。 –
それで#1の行を#3にない行を表示したいのですか? –
@GordonLinoffよろしくお願いします。 – Jon49