0
4つの結合を使用して単一のテーブルに結合しようとしているテーブルがいくつかあります。複数のテーブルを結合し、必要な列を1つのMySQLに挿入する
テーブルは、次のとおり
vehicleId
make
model
year
cylinders
displacement
drive
engid
eng_dscr
trany
mpgHighway
mpgCity
fuelCostAnnual
fuelType
fuelType1
vClass
vehicledrive
車両
driveId
driveName
vehiclefueltype
fuelId
fuelName
I車両テーブルを正規化し、新しいテーブル、vehiclenormalを有し、ルックなどの他の3つのテーブルを使用しvehiclemodel
modelId
modelName
makeId makeName
vehiclemake反復的な値のためのアップアップ。 これまでのところ、私が持っているすべては、すべてのテーブルを結合する文です:
select vehicle.*, vehicledrive.*, vehiclefueltype.*, vehiclemake.*, vehiclemodel.*
from vehicle
join vehicledrive
on vehicle.drive = vehicledrive.driveName
join vehiclefueltype
on vehicle.fueltype = vehiclefueltype.fuelname
join vehiclemake
on vehicle.make = vehiclemake.makename
join vehiclemodel
on vehicle.model = vehiclemodel.modelname
order by vehicle.vehicleid
私の問題は、私は、INSERT文を追加する方法がわからないということです。挿入には... selectを使用することができますが、結合の結果に基づいて挿入する列と行を指定するにはどうすればよいですか?
編集:さて、私は私が挿入したいデータのみを選択する方法を見つけた、と私は次のクエリを試してみました:
insert into vehiclenormal (makeid, modelid, year, cylinders, driveid, mpghighway, mpgcity, fueltypeid)
(select makeid, modelid, year, cylinders, driveid, mpghighway, mpgcity, fuelid
from vehicle
join vehicledrive on vehicledrive.driveName = vehicle.drive
join vehiclefueltype on vehiclefueltype.fuelName = vehicle.fueltype
join vehiclemake on vehiclemake.makeName = vehicle.make
join vehiclemodel on vehiclemodel.modelname = vehicle.model);
しかしHeidiSQLは、21,000以上のエラーがあったと言っています。なぜ値を挿入しないのですか?
私は実際にちょうどへの挿入を試みたが、私は警告が、何も得ませんでした。私は元の投稿を編集しました。 –
この例では、すべての列を車両に含めるわけではありませんでしたが、とにかくその考えを得ることを願っています。 –
a、b、c、d、eの意義は表の名前です。もしそうなら、なぜそれほど明白である必要がありますか? –