如何遍历一个表并根据另一个表中的数据更新字段?

时间:2019-05-06 18:26:49

标签: mysql

我有两个桌子。 table_1和table_2。 table_1包含几列,但我需要的两列是table_1.id和table_1.contact_id。 table_2包含空白列table_2.related_contact和一列,填充在table_2.cid中。 table_2.cid和table_1.id相同。

我想基于table_2.cid遍历table_2,其中table_2.cid = table_1.id用同一行的table_1.contact_id中的值更新table_2.related_contact。

我的SQL知识还可以,但是这超出了我的范围。我看了其他答案,但找不到适合该示例的一个例子。

循环前示例:

表1

cid:3745         related_contact: NULL
cid:3746         related_contact: NULL

表2

cid: 3745         related_contact: ae456-78ef
cid: 3746         related_contact: oi958=34hb

循环后:

表2

const [objects, setObjects] = useState([])

useEffect(()=> {
      getAllObjects()
    },[getAllObjects, objects])

2 个答案:

答案 0 :(得分:0)

使用SQL UPDATE语法(https://dev.mysql.com/doc/refman/8.0/en/update.html)将重点放在table_references上,如第13.2.10节“ SELECT语法”(https://dev.mysql.com/doc/refman/8.0/en/select.html)中所述。

UPDATE table_2 t2 
INNER JOIN table_1 t1 ON t1.id=t2.cid 
SET 
t2.related_contact=t1.contact_id

答案 1 :(得分:0)

您不需要循环,可以使用基于联接的更新

update table2 
inner join table1 on table1.id = table2.id 
set table2.related_contact = table1.contact_id 
相关问题