Select 更新查询中的查询

Select query inside an update query

我有两个数据库table 即读数和存档。 如何根据读数 table 中 prevRead 列的记录更新存档 table 中的 jan 列名称。这是我的查询:

 $sql_query = "SELECT prevRead FROM readings ";
 $result_set=mysql_query($sql_query);
 while($row=mysql_fetch_row($result_set))
 {
    $sql = "UPDATE archive SET jan = '$row[0]'";
    mysql_query($sql);
 }

例如我在读数的prevRead列中有500和200的记录table然后我做了查询。存档 table 的 jan 列中的输出将是 200 和 200。如何使输出成为 500 和 200。

首先在archivetable中添加一个外键column/field。例如:reading_id.

reading_id 将在 table readings 中保存相同的主键值。通过这种方式,您将知道 readings 的哪个条目与 archive.

的哪个条目相关

那么你只需要这样修改代码: (我假设你的 readings table 的主键是 id

$sql_query = "SELECT id, prevRead FROM readings";
$result_set = mysql_query($sql_query);
while($row = mysql_fetch_assoc($result_set))
{
    $sql = "UPDATE archive SET jan = '". $row['prevRead'] ."' WHERE reading_id = '". $row['id'] ."'";
    mysql_query($sql);
}