与来自另一个表中的值的MySQL更新列(mysql update column with value

2019-06-17 13:36发布

我有两个表,这两个看起来像

id  name  value
===================
1   Joe     22
2   Derk    30

我需要的值复制valuetableAtableB基础上在每个表检查名称。

任何提示此UPDATE语句?

Answer 1:

除了这个答案,如果你需要根据tableA.value动态比如,你可以做些什么来改变tableB.value:

UPDATE tableB
INNER JOIN tableA ON tableB.name = tableA.name
SET tableB.value = IF(tableA.value > 0, tableA.value, tableB.value)
WHERE tableA.name = 'Joe'


Answer 2:

你需要加入两个表:

比如你想要的值复制name从表A到tableB ,他们具有相同的ID

UPDATE tableB t1 
        INNER JOIN tableA t2 
             ON t1.id = t2.id
SET t1.name = t2.name 
WHERE t2.name = 'Joe'

更新1

UPDATE tableB t1 
        INNER JOIN tableA t2 
             ON t1.id = t2.id
SET t1.name = t2.name 

更新2

UPDATE tableB t1 
        INNER JOIN tableA t2 
             ON t1.name = t2.name
SET t1.value = t2.value


Answer 3:

第二个可能性是,

UPDATE TableB 
SET TableB.value = (
    SELECT TableA.value 
    FROM TableA
    WHERE TableA.name = TableB.name
);


Answer 4:

第二个选项是可行的,如果你还正在使用安全更新模式(和你要表明你已经尝试没有一个WHERE使用键列更新表的错误),加入:

UPDATE TableB  
SET TableB.value = (  
SELECT TableA.value  
    FROM TableA  
    WHERE TableA.name = TableB.name  
)  
**where TableB.id < X**  
;


Answer 5:

存放在临时表数据

Select * into tempTable from table1

现在更新列

 UPDATE table1
    SET table1.FileName = (select FileName from tempTable where tempTable.id = table1.ID);


Answer 6:

如果您在这两个表有共同的字段,则它是如此容易!....

表1要更新=表。 表2 =表你来自哪里获取数据。

  1. 使查询表-1和找到共同的字段值。
  2. 使一个循环,并从找到表2的所有数据根据表1的值。
  3. 再次使表1更新查询。

$qry_asseet_list = mysql_query("SELECT 'primary key field' FROM `table-1`");

$resultArray = array();
while ($row = mysql_fetch_array($qry_asseet_list)) {
$resultArray[] = $row;
}



foreach($resultArray as $rec) {

    $a = $rec['primary key field'];

    $cuttable_qry = mysql_query("SELECT * FROM `Table-2` WHERE `key field name` = $a");

    $cuttable = mysql_fetch_assoc($cuttable_qry);



    echo $x= $cuttable['Table-2 field']; echo " ! ";
    echo $y= $cuttable['Table-2 field'];echo " ! ";
    echo $z= $cuttable['Table-2 field'];echo " ! ";


    $k = mysql_query("UPDATE `Table-1` SET `summary_style` = '$x', `summary_color` = '$y', `summary_customer` = '$z' WHERE `summary_laysheet_number` = $a;");

    if ($k) {
        echo "done";
    } else {
        echo mysql_error();
    }


}


文章来源: mysql update column with value from another table