-3

一致しない日付フィールドを持つ 2 つのテーブルがあります。

まず、日付フィールドを更新する必要があるレコードのリストを返すクエリがあります。

SELECT distinct ID_NUMBER 
FROM a
INNER JOIN b
ON a.ID_NUMBER = b.ID_NUMBER
INNER JOIN c
ON c.ID_NUMBER = b.ID_NUMBER
INNER JOIN d
ON c.ID_NUMBER = d.ID_NUMBER
WHERE d.DATE <> b.DATE

20K プラス ID_NUMBER を返します

ID_Number = そのクエリからの ID_numbers のリストであるテーブル B を更新したいと思います。

しようとしている:

UPDATE b
SET d.DATE = b.DATE
Where (select distinct ID_NUMBER 
from a
INNER JOIN b
ON a.ID_NUMBER = b.ID_NUMBER
INNER JOIN c
ON c.ID_NUMBER = b.ID_NUMBER
INNER JOIN d
ON c.ID_NUMBER = d.ID_NUMBER
Where d.DATE <> b.DATE
)

簡単なはずです。構文を取得できないようです。助けていただければ幸いです。

4

3 に答える 3

1

それらはすべて同じ ID_NUMBER を持ち、とにかくテーブル b と d しか見ていないので、これを行うことはできませんか?

UPDATE b
SET b.DATE = d.DATE
FROM b INNER JOIN d ON b.ID_NUMBER = d.ID_NUMBER
WHERE d.DATE <> b.DATE
  AND d.ID_NUMBER = b.ID_NUMBER;

SQL フィドル リンク: http://sqlfiddle.com/#!3/a3af9/3

于 2013-08-30T18:27:21.210 に答える