2017-02-24 12 views
0

同じ "id"値に基づいてあるテーブルから別のテーブルに1列のデータを挿入しようとしました。私は次のクエリを実行し、それは正常に実行され、すべての行がメッセージの影響を受けていることを示しました。しかし、テーブルをチェックすると、その列の各行に空白の値が表示されました。したがって、データは挿入されませんでした。なぜ更新と挿入がクエリで機能していないのですか?

insert into edge_table (code) 
    select d.code as code from d_k as d inner join edge_table as edge on d.segm_id = edge.segm_id 

私はUPDATEを試しました。次のクエリで実行されます。そして、それはエラーました:

update edge_table set (code) = 
    (select d.code as code from d_k as d inner join edge_table as edge on d.segm_id = edge.segm_id) 

「表現として使用サブクエリから返された複数の行を」しかし、私は唯一の選択しようとしたとき、それがうまく働きました。

select d.code as code from d_k as d inner join edge_table as edge on d.segm_id = edge.segm_id 
+1

エラーメッセージには、サブクエリは複数の行を返します。更新テーブルへの参照も必要です。 – jarlh

+0

選択クエリからのデータ取得数が複数ある –

答えて

1

私はあなたがこれをしたいと思われる:

update edge_table 
    set code = d.code 
    from d_k d 
    where d.segm_id = edge_table.segm_id ; 

これはd_kで試合を持ってedge_tableで既存の値を更新します。

注:edge_tableには、特定の行に対して複数の一致が存在するため、データに問題があります。これは、任意の一致する行を使用して更新されます。

関連する問題