Php 2个相同的表,更新表1中存在数据的第二个表

Php 2个相同的表,更新表1中存在数据的第二个表,php,mysql,Php,Mysql,我有两个具有相同列的表。 比如说 table 1 id name height weight table 2 id name height weight 数据表明,表2是完整的。但是在表1中,只有一些数据存在,其余的列是空的。例如: table 1 table 2 id 4 4 name (empty) salman height 5'11" 5'9" weight (empyy) 65k

我有两个具有相同列的表。 比如说

table 1
id
name
height
weight

table 2
id
name
height
weight
数据表明,表2是完整的。但是在表1中,只有一些数据存在,其余的列是空的。例如:

          table 1    table 2
id        4          4
name      (empty)    salman
height    5'11"      5'9" 
weight    (empyy)    65kg
我想要一个脚本,它允许我用表1中的值更新表2,但只在它存在的地方更新。在表1为空的地方,我希望保留表2中已经存在的数据

我尝试过各种方法,但都需要多次查询,而且很长很忙。我想知道是否有更简单的方法来完成这件事?最好是在单个查询中


谢谢

您可以尝试加入这两个表,然后使用CASE关键字有条件地更新字段:

UPDATE table2 t2 INNER JOIN table1 t1 USING (id)
SET 
 t2.name = CASE WHEN (t1.name IS NULL) THEN t2.name ELSE t1.name END
 t2.height= CASE WHEN (t1.height IS NULL) THEN t2.height ELSE t1.height END
 t2.weight = CASE WHEN (t1.weight IS NULL) THEN t2.weight ELSE t1.weight END


当您说“这将允许我使用表1中的值更新表2”时,这是SQL更新或“更新”一词的直观用法,可以是SQL插入?表1中的记录是否过多?您是否希望表1与表2完全相同?