SQL JOIN查询错误

时间:2013-08-03 20:30:11

标签: php sql

好吧,所以我现在已经使用SQL一段时间了......可能已经连续3年了。我说我在这方面表现得相当不错,但话说回来,我从来没有完全理解这个"加入" SQL中的函数。教程和什么也没有帮助我。

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

    <?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(); }
?>

有人可以向我解释如何纠正这个问题吗?

1 个答案:

答案 0 :(得分:2)

如果您使用的是MySQL,那么join会超越set声明:

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

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

如果您使用的是SQL Server,那么join {/ 1}} 之后的from子句

set