1

好吧,所以我已经使用 SQL 有一段时间了.. 可能 2 可能 3 年了。我会说我很擅长它,但话虽如此,我从来没有能够完全理解 SQL 中的“JOIN”函数。教程和什么也没有帮助我。

我今天一直在摆弄它,但我仍然无法让它工作;

    <?php
include($_SERVER['DOCUMENT_ROOT'].'/includes/constants.php');

$sql = "UPDATE users SET health = store.type_value - health WHERE uid = :uid INNER JOIN store AS store WHERE iid = :iid";
$que = $db->prepare($sql);
$que->bindParam('uid', $_SESSION['uid']);
$iid = '1';
$que->bindParam('iid', $iid);
try{$que->execute();}catch(PDOException $e){ echo $e->getMessage(); }
?>

有人可以向我解释如何正确执行此操作吗?

4

1 回答 1

2

如果您使用的是 MySQL,那么join上面的set语句:

update users join
       store
       on users.uid = :uid  and iid = :iid
    set health = store.type_value - health;

这将两个条件都放在on子句中。然而,这是一个奇怪的情况,我怀疑这不是你真正想要的。users和之间的连接键是什么stores

如果您使用的是 SQL Server,则join在以下from子句加入set

update users 
    set health = store.type_value - health
    from users join
         store
         on users.uid = :uid  and iid = :iid;
于 2013-08-03T20:34:03.580 回答