2017-10-03 5 views
0

私は2つの異なるテーブルtbl_addresstbl_supportを持っています。私はtbl_addressににtbl_supportinsertからaddresspostcod Eを選択し、最後に挿入さidtbl_supportupdateaddress_idにしたいしたいと思います。どのようにクエリを書くのですか?テーブルからレコードを選択してテーブル2に追加し、最後に挿入したIDをテーブル1に更新します。

tbl_address = id, address, postcode, country. 
tbl_support = id, address_id ,name, address,postcode, 

答えて

0

アドレステーブルの自動インクリメントであなたのコラムidフィールドは、このしようとした場合:アドレスと郵便番号が一意で設定されている場合、あなたはtbl_supportを更新することができます

insert into tbl_address select address, postcode from tbl_support; 

を。

update tbl_support s set s.address_id=(select id from tbl_address a where 
a.address=s.address and a.postcode = s.postcode) 
0

あなたは2つの別々のクエリに実行する必要があります。最初にすべてのtbl_supportレコードをtbl_addressテーブルに挿入します。次に、クエリの下にある一致するtbl_addressアドレス、postcodeおよびtbl_supportアドレス、zip code.likeを使用してaddress_idを更新する2番目のクエリを実行する必要があります。

INSERT INTO tbl_address ( 
     address, 
     postcode) 
SELECT address, 
     postcode 
FROM `tbl_support`; 

UPDATE `tbl_support` SET address_id = (SELECT id FROM `tbl_address` 
WHERE tbl_support.address= tbl_address.address 
AND tbl_support.postcode= tbl_address.postcode) 
関連する問題