我有两个表,这两个看起来像
id name value
===================
1 Joe 22
2 Derk 30
我需要的值复制value
从tableA
到tableB
基础上在每个表检查名称。
任何提示此UPDATE
语句?
我有两个表,这两个看起来像
id name value
===================
1 Joe 22
2 Derk 30
我需要的值复制value
从tableA
到tableB
基础上在每个表检查名称。
任何提示此UPDATE
语句?
除了这个答案,如果你需要根据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'
你需要加入两个表:
比如你想要的值复制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
第二个可能性是,
UPDATE TableB
SET TableB.value = (
SELECT TableA.value
FROM TableA
WHERE TableA.name = TableB.name
);
第二个选项是可行的,如果你还正在使用安全更新模式(和你要表明你已经尝试没有一个WHERE使用键列更新表的错误),加入:
UPDATE TableB
SET TableB.value = (
SELECT TableA.value
FROM TableA
WHERE TableA.name = TableB.name
)
**where TableB.id < X**
;
存放在临时表数据
Select * into tempTable from table1
现在更新列
UPDATE table1
SET table1.FileName = (select FileName from tempTable where tempTable.id = table1.ID);
如果您在这两个表有共同的字段,则它是如此容易!....
表1要更新=表。 表2 =表你来自哪里获取数据。
$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();
}
}