2013-08-03 2 views
1

좋아, 그래서 나는 SQL과 함께 몇 시간 동안 일 해왔다. 아마 아마 2 년이나 걸렸을 것이다. 나는 그것에 잘 해내 야한다고 말하고 싶지만, 그렇게 말하면서 나는 SQL에서 "JOIN"함수를 완전히 이해할 수 없었다. 자습서와 무엇이 나를 도울 수 없습니다.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(); } 
?> 

누구에게 설명해주세요.이 수정 방법을 알려주세요.

답변

2

당신이 MySQL을 사용하는 경우, 다음 joinset 문 위에 간다 :

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

이것은 on 절에 두 조건을 넣습니다. 그러나 이것은 이상한 상태이며, 당신이 정말로 원하는 것이 아닌 것 같습니다. usersstores 사이의 가입 키는 무엇입니까? SQL Server를 사용하는 경우

, 다음 joinsetfrom간다 :

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