7

我有两个表日历和客户表。日历表有一个“客户”列,其中客户表“ID”作为值。但不幸的是,这个日历客户字段值被错误地填充了其他值。两个表都有这些公共字段 Date、SeatingID 和 BusID。如何根据这些常用字段更新日历表客户字段?

下面是两个表的结构。

客户表 在此处输入图像描述

日历表

在此处输入图像描述

4

4 回答 4

7

您可以像这样通过两个表来从第一个表中获取第二个表UPDATE的字段:CustomerCalendarCustomerJOIN

UPDATE calendar c1
INNER JOIN Customer c2 ON c1.SeatingID = c2.SeatingID AND c1.BusID = c2.BusID
SET c1.Customer = c2.ID --or SET c1.Customer = c2.PassengerName or whatever you want.

SET子句中,您可以设置要更新的列,也可以JOIN根据我使用的任何谓词设置两个表c1.SeatingID = c2.SeatingID AND c1.BusID = c2.BusID,但您可以选择适合您需要的表。

这是一个 SQL Fiddle 演示

于 2012-09-29T07:01:56.650 回答
1

试试这个代码:

UPDATE calendar cal, customer cust 
SET cal.Customer = cust.ID
where cal.SeatingID = cust.SeatingID 
and cal.BusID = cust.BusID
and cal.DATE = cust.DateOfTravel;

SQL 小提琴演示

是 abaout 更多信息的链接update

于 2012-09-29T07:49:17.533 回答
1
update calendar ca left join customer c 
on c.DateofTravel=ca.Date and c.SeatingID=ca.SeatingID and c.BusID=ca.BusID 
set 
ca.Customer=c.ID;
于 2012-09-29T09:28:34.930 回答
0

使用此查询将帮助您从另一个表列更新表列:

UPDATE tableName1 AS tb1
INNER JOIN tableName2 AS tb2 
ON (tb1.columnName= tb2.columnName) 
SET tb1.updatedColumn = tb2.updatedColumnValue
WHERE ADD HERE CONDITION IF REQUIRED
于 2015-09-09T15:19:01.163 回答