■51486 / inTopicNo.11) |
Re[6]: SQL 2005 INSERTについて |
□投稿者/ zun (6回)-(2010/07/07(Wed) 14:31:36)
|
■No51483 (ごう さん) に返信 > ■No51480 (zun さん) に返信 > > 当方の環境 SQL Server 2000 (および NorthWindサンプルデータベース)で下記のように試したところ、できました。 > 参考:NorthWindサンプルデータベース http://msdn.microsoft.com/ja-jp/library/ms143221(SQL.90).aspx > > (CustomerID, City, CompanyNameという列を持つテーブルaaaは作成済み) > > INSERT INTO aaa (CustomerID, City, CompanyName) > SELECT bbb.CustomerID, ccc.City, ddd.CompanyName > FROM Orders as bbb > LEFT JOIN Employees as ccc on ccc.EmployeeID = bbb.EmployeeID > LEFT JOIN Shippers as ddd on ddd.ShipperID = bbb.ShipVia > > これでできたとので、このSQL文自体には問題なさそうに見えます。 > 次はbbb(bbbテーブル)に問題がないか?ということが気になります。 > > bbbテーブルには本来何行のレコードがあるのでしょうか? > > SELECT文単体 > > select bbb.a, ccc.b, ddd.c > from bbbテーブル as bbb > left join cccテーブル as ccc on bbb.x = ccc.x > left join dddテーブル as ddd on bbb.z = ddd.z > > を実行すると、約500行のレコードが取得できたとのことですので、 > bbbテーブルのデータが約500行でない場合に問題があるかもしれません。 bbbテーブルにはもともと500レコードあります。 そのbbbテーブルに条件が合致したcccテーブルとdddテーブルを連結し、作成したレコードをaaaテーブルにINSERTしたです。
> あとは考えられるのが、sumとかcount関数を使用していないかどうか、とか確認してみてください。 特にsumとかcount関数等は使用しておりません。
もともとaaaテーブルにはレコード数が10万件以上あるので、処理時間を短くするためにも上記の方法が得策だと考えたのですが、違う方法を考えみるのも手でしょうか?
|
|