簡體   English   中英

根據mysql中其他表中的匹配值更新列

[英]Update column based on matching values in other table in mysql

我有兩個表日歷和客戶表。 日歷表有一個“客戶”列,其客戶表“ID”為值。 但遺憾的是,此日歷客戶字段值錯誤地填充了其他值。 兩個表都有這些公共字段Date,SeatingID和BusID。 如何根據這些常見字段更新日歷表客戶字段?

以下是兩個表的結構。

客戶表 在此輸入圖像描述

日歷表

在此輸入圖像描述

您可以UPDATECustomer的第二個表的字段Calendar從第一台CustomerJOIN荷蘭國際集團的兩個表所示:

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演示

試試這段代碼:

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 Fiddle DEMO

update信息的鏈接。

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;

使用此查詢它將幫助您從另一個表列更新表列:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM