-3

既にデータが含まれているテーブルがあります。

Table -> Address:
AddressID, Address 1, Address 2, email etc...

Table -> Branches:
BranchesID, StoreName, Address 1, Address 2

次に、Branches テーブルから Address テーブルにすべてのデータをコピーし、新しくコピーされたデータの AddressID を持つ Branches に列を作成して、Address テーブルを使用して Branches Addresses を参照できるスクリプトが必要です。

助けてください。

私はこれまでにこれをたくさん試しました。

INSERT Address1, Address2, City, ZipCode)
OUTPUT AddressID
INTO Addresses
SELECT Address1, Address2
FROM Baranches;

しかし、新しく作成されたレコード ID を Address テーブルから Braches テーブルに挿入する方法がわかりません ...

タンク

4

1 に答える 1

2

AddressIdまず、フィールドをに追加する必要がありますBranches。どの RDBMS を使用しているかわかりませんので、ここに MSSQL の例を示しますが、いくつかの変更を加えればすべての RDBMS で機能するはずです。

ALTER TABLE BRANCHES ADD AddressID bigint;

次に、アドレスbranchesAddressテーブルに挿入します。AddressId自動インクリメントされたPKだと思いますか?WHEREこのクエリのステートメントにより、アドレスの重複を回避できます。

insert into ADDRESS (Address1, Address2)
select Address1, Address2 
    from BRANCHES 
      where 
       not exists(select AddressID 
                        from ADDRESS 
                        where Address1=BRANCHES.Address1
                              and 
                              Address2=BRANCHES.Address2 ) 

次にAddressID、BRANCHES のフィールドに入力する必要があります。

update BRANCHES SET AddressId=(select TOP 1 AddressId from Address where 
                                   Address1=BRANCHES.Address1
                                    and 
                                   Address2=BRANCHES.Address2 )
于 2012-12-27T11:02:32.517 に答える