Oracle DB で 1 つの一括更新を実行する際に問題が発生しています。
マップと呼べるマッピングテーブルに一括挿入したい
データを取得する必要がある他の 2 つのテーブルがあります。最初のテーブルは、このクエリで挿入する目的のアカウントを選択できるアカウントテーブルです。
select account_id
from account
where company_id in (
select company_id
from company
where company_name = 'string');
このクエリは、挿入する会社名に応じてすべてのアカウントを選択します。
次に、グループを呼び出すことができるテーブルがあり、このテーブルには挿入した正確な数のグループがあり、グループには UID があるため、group_id は 1 から 500 です。
私がしなければならないことは次のとおりです。アカウントとグループの間の UID マッピングをテーブル マップに挿入する必要があります。実行する必要がある特別な順序はありません
insert into map (account_id, group_id)
values (number,number);
しかし、残念ながら、複数の結果を含む選択でそのような一括挿入を行う方法と、ループをカウントする方法がわかりません。
だから私の考えは、次のようなことです:
insert into map (account_id, group_id) values ((select account_id
from account
where company_id in (
select company_id
from company
where company_name = 'string')),loop from 1 to 500);
多くのgroup_id
で挿入できるルールを使用しますが、1 つのグループは 1 つのグループにしかリンクできません。account_id
account_id
もちろん、このクエリは機能しません。やりたいことを表現しようとしているだけです。これが理にかなっていることを願っています。
私は正確に何をどこに挿入したいかを知っているので、500account_id
秒と 50group_id
秒があることを知っているすべてのカウントを持っています。account_id
また、 1 から 500 と1 から 500 を意味する順番になっているgroup_id
ので、この場合、何らかの方法で挿入をループするのはかなり簡単だと思います。
私は自分自身をできるだけ明確にしたことを願っています。
あなたの答えと提案をありがとう!