从另一个(一对多关系)插入 TABLE
INSERT into TABLE from another (one to many relation)
我有一个 table "Jobs",它有列(JobID、Time、DrvNo...)。
我得到了另一个 table "JobDetails"(JobFK、PkSequence、IsDestination、PC)。 Jobs 和 JobDetails 之间存在一对多关系。
Data in Jobs is as follows:
Jobs
==================
JobID, Time, DrvNO
==================
1, 12:30, 123
2, 13:50, 343
3, 14:00, 234
Data in JobDetails as follows:
JobDetails
==============================================
JobFK, PkSequence, IsDestination, PC
==============================================
1, 0, 0, AB1
1, 1, 1, DE1
2, 0, 0, RT1
2, 1, 0, DS1
2, 2, 1, KJ1
3, 0, 0, YU7
3, 1, 1, TH1
我想做的是合并这两个 tables,方法是在 Jobs 中再插入两列,并尝试通过从 JobDetails 获取 Pickup 和 Destination 来填充 Jobs;像下面这样:
Jobs
==================
JobID, Time, DrvNO, Pickup, Dropoff
==================
1, 12:30, 123, AB1, DE1
2, 13:50, 343, RT1, KJ1
3, 14:00, 234, YU7, TH1
我已经完成了其中的 SELECT 部分,如下所示:
SELECT cj.JobID, cj.Time,cj.DrvNo, j.PC AS Pickup, k.PC AS Dropoff
FROM Jobs AS cj
LEFT JOIN JobDetails AS j ON (cj.JobID = j.JobFK AND j.PKSequence = 0)
LEFT JOIN JobDetails AS k ON (cj.JobID = k.JobFK AND k.IsDestination= 1)
上面的 SELECT 工作正常但是如何 insert/update 现有的 table (工作)与来自这个查询的数据?
感谢任何帮助。
谢谢
这里是 SQL 添加列,然后使用 select 查询中的值更新它们(没有验证连接,因为你说它们正在为你想要的工作)。您可以根据需要更改新列的类型,这只是根据给定数据猜测的。
ALTER TABLE Jobs
ADD Pickup VARCHAR(3)
,Dropoff VARCHAR(3)
;
GO
UPDATE cj
SET cj.Pickup = j.PC
,cj.Dropoff = k.PC
FROM Jobs AS cj
LEFT JOIN JobDetails AS j ON (cj.JobID = j.JobFK AND j.PKSequence = 0)
LEFT JOIN JobDetails AS k ON (cj.JobID = k.JobFK AND k.IsDestination= 1)
我有一个 table "Jobs",它有列(JobID、Time、DrvNo...)。 我得到了另一个 table "JobDetails"(JobFK、PkSequence、IsDestination、PC)。 Jobs 和 JobDetails 之间存在一对多关系。
Data in Jobs is as follows:
Jobs
==================
JobID, Time, DrvNO
==================
1, 12:30, 123
2, 13:50, 343
3, 14:00, 234
Data in JobDetails as follows:
JobDetails
==============================================
JobFK, PkSequence, IsDestination, PC
==============================================
1, 0, 0, AB1
1, 1, 1, DE1
2, 0, 0, RT1
2, 1, 0, DS1
2, 2, 1, KJ1
3, 0, 0, YU7
3, 1, 1, TH1
我想做的是合并这两个 tables,方法是在 Jobs 中再插入两列,并尝试通过从 JobDetails 获取 Pickup 和 Destination 来填充 Jobs;像下面这样:
Jobs
==================
JobID, Time, DrvNO, Pickup, Dropoff
==================
1, 12:30, 123, AB1, DE1
2, 13:50, 343, RT1, KJ1
3, 14:00, 234, YU7, TH1
我已经完成了其中的 SELECT 部分,如下所示:
SELECT cj.JobID, cj.Time,cj.DrvNo, j.PC AS Pickup, k.PC AS Dropoff
FROM Jobs AS cj
LEFT JOIN JobDetails AS j ON (cj.JobID = j.JobFK AND j.PKSequence = 0)
LEFT JOIN JobDetails AS k ON (cj.JobID = k.JobFK AND k.IsDestination= 1)
上面的 SELECT 工作正常但是如何 insert/update 现有的 table (工作)与来自这个查询的数据?
感谢任何帮助。 谢谢
这里是 SQL 添加列,然后使用 select 查询中的值更新它们(没有验证连接,因为你说它们正在为你想要的工作)。您可以根据需要更改新列的类型,这只是根据给定数据猜测的。
ALTER TABLE Jobs
ADD Pickup VARCHAR(3)
,Dropoff VARCHAR(3)
;
GO
UPDATE cj
SET cj.Pickup = j.PC
,cj.Dropoff = k.PC
FROM Jobs AS cj
LEFT JOIN JobDetails AS j ON (cj.JobID = j.JobFK AND j.PKSequence = 0)
LEFT JOIN JobDetails AS k ON (cj.JobID = k.JobFK AND k.IsDestination= 1)