столбец обновления mysql со значением из другой таблицы
у меня есть два стола, оба выглядят как
id name value
===================
1 Joe 22
2 Derk 30
мне нужно скопировать значение value
С tableA
to tableB
на основе имени проверки в каждой таблице.
любые советы по этой UPDATE
заявление?
6 ответов
В дополнение к этому ответу, если вам нужно изменить Т1.значение по Т2.значение динамически вы можете сделать, например:
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
из таблицы в 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
);
второй вариант также возможен, если вы используете безопасный режим обновлений (и вы получаете сообщение об ошибке, указывающее, что вы пытались обновить таблицу без использования ключевого столбца), добавив:
UPDATE TableB
SET TableB.value = (
SELECT TableA.value
FROM TableA
WHERE TableA.name = TableB.name
)
**where TableB.id < X**
;
--храните данные в таблице temp Выберите * в tempTable из table1
--теперь обновите столбец Обновление table1 Набор таблица1.FileName = (выберите FileName из tempTable, где tempTable.id = table1.ID);
Если у вас есть общее поле в таблице, то это так легко !....
Таблица-1 = таблица, в которой вы хотите обновить. Table-2 = таблица, из которой вы берете данные.
- сделайте запрос в Таблице-1 и найдите общее значение поля.
- сделайте цикл и найдите все данные из таблицы-2 в соответствии со значением таблицы 1.
- снова сделайте запрос обновления в таблице 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();
}
}