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 に答える