-1

Firebird には 2 つのテーブルがあり、テーブルの 1 つは重複した ID を含み、もう 1 つは一意の ID のみを含みます。したがって、手順を使用して重複テーブルから一意の ID を選択し、それらを一意のテーブルに挿入したいと考えています。でも、よくわからないので、どなたか教えていただけないでしょうか?

編集:ここに例があります:

2テーブルあります

             ## GASFLESSEN ##            
ID CODE SUCCESS TARE_WEIGHT FILLING_NOZZLE      //< Column "CODE" contains those unique ID's.

           ## READINGS ##
      ID CODE_ID READING_TIME                   //< Column "CODE_ID" contains the duplicate ID's

みんなありがとう。

4

3 に答える 3

1

重複があるテーブルで「一意の」ID-s のリストを取得する場合は、次を使用しますDISTINCT

SELECT DISTINCT id FROM d

結果セットを「一意のテーブル」にまだないレコードにさらに制限したい場合はid、テーブルを結合するか、NOT EXISTSieを使用します

SELECT DISTINCT id FROM d WHERE NOT EXISTS(SELECT 1 FROM u WHERE u.id = d.id)
于 2013-03-22T09:06:11.743 に答える
0

これを行うにはいくつかの方法があります。ainの答えに加えて、これは次を使用して行うこともできますMERGE

MERGE INTO table_unique
    USING (SELECT DISTINCT id FROM table_duplicates) src
    ON table_unique.id = src.id
    WHEN NOT MATCHED THEN 
        INSERT (id) values (src.id);
于 2013-03-23T09:10:11.013 に答える
0
procedure CopyUniqueFromData;
declare var_id integer;
  for 
    select distinct id from d into :var_id 
  do begin
    insert into u (id) values (:var_id);
  end
end
于 2013-03-22T11:07:31.150 に答える