我正在使用两个表进行更新,但是由于某种原因,该更新不起作用并且没有生成错误,因此我找不到问题。有人可以说明一下吗?为什么这不起作用?
$upd = "
UPDATE table t
, images i
SET t.image_blob = i.image_blob
WHERE t.record_id='".$rid."'
AND i.image_id='".$iid."'";<br>
$dbh->exec($upd);
换句话说,我想从图像表(在image_id=$iid
处)和更新表(t)在record_id=$rid
处获取特定记录。
答案 0 :(得分:0)
在您的代码中,首先您说自己打算更新2个表,但随后只更新表t。 如果表没有与前键相关,则可以尝试下一个:
$upd = "
UPDATE table t
SET t.image_blob = (SELECT i.image_blob FROM images i WHERE i.image_id='".$iid."')
WHERE t.record_id='".$rid."'";
$dbh->exec($upd);
否则,您可以尝试使用“ FROM”和“ JOIN's”在Update a single table based on data from multiple tables SQL Server 2005,2008给出的解决方案