簡體   English   中英

MySQL 更新兩個與第一個不同的表

[英]MySQL UPDATE Two Tables with Differences From The First

我有兩個表 table1 和 master。 Master 是聯系人的主數據庫。 表 1 包含來自一項研究中受訪者調查的最新聯系信息。

table1 包含當前信息 - 兩個表都通過公共變量 ID 連接

這里是 select 查詢(它完美地工作) - 它找到所有記錄,其中 field1 或 field2 在 table1 和主表之間不同

SELECT
t1.ID,
t1.field1,
m.field1,
t1.field2,
m.field2
FROM
table1 t1
INNER JOIN master m ON t1.ID = m.ID
where 
(
   (t1.field1 <> m.field1) OR
(t1.field2 <> m.field2)

)

我的問題是:如何將 SELECT 語句轉換為 UPDATE 語句,以便 table1 中具有不同值的所有記錄覆蓋 master 表中的值?

謝謝你。

您可以使用以下更新。
where 子句不會更改最終結果,因為我們將用相同的值覆蓋已經正確的行。

UPDATE t1
INNER JOIN master ON t1.id = master.id
SET 
  t1.field1 = m.field1,
  t1.field2 = m.field2
WHERE t1.field1 <> m.field1
OR t1.field2 <> m.field2;

暫無
暫無

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

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