2015-04-16 139 views
2

我目前正在處理我的查詢。所以我有兩個表,tbl_room和tbl_reservation。我想要做符合以下條件的更新查詢:如果tbl_room 1UPDATE,JOIN和WHERE MySQL

遞減室櫃檯:

  1. 客戶的姓和名的tbl_reservation匹配的第一個和最後一個名字
  2. $result = mysql_query("UPDATE 
        tbl_room 
        JOIN tbl_reservation 
        ON tbl_room.roomID = tbl_reservation.roomID 
        AND tbl_reservation.cus_fname = '$cusFN' 
        AND tbl_reservation.cus_lname = '$cusLN' SET tbl_room.reserve = reserve - 1 "); 
    
  3. 的tbl_reservation房間ID與tbl_room房間ID

我目前堅持這一匹配

這些都是我的表:

---------- 
tbl_room 
---------- 
roomID, 
room_type, 
capacity, 
reserve <--- reservation counter 


---------- 
tbl_reservation 
---------- 
reserveID, 
cus_fname, 
cus_lname, 
+0

在SQLFiddle(http://sqlfiddle.com/#!9/4b8213/1/0)中重新創建表後,似乎沒有更新語句的問題。 @Justine – WorkSmarter

+0

我其實有6個查詢。這是我有的最後一個查詢,它不工作> _ <我已經更新了我的問題。感謝你的幫助! :) –

+0

請停止使用MySQL並升級到MySQL * i *或PDO。更安全,更安全,更可讀。 MySQL是**棄用**,不應該依賴它。 – Martin

回答

0

嘗試......

$sql = "UPDATE `tbl_room` 
SET `tbl_room`.`reserve` = `tbl_room`.`reserve` - 1 
WHERE `tbl_room`.`roomID` = `tbl_reservation`.`roomID` 
AND `tbl_reservation`.`cus_fname` = '$cusFN' 
AND `tbl_reservation`.`cus_lname` = '$cusLN'"; 
+0

我試着使用相同的查詢。我想我需要使用連接,因爲它們屬於差異表。 –

1

我已經想出了正確的查詢。 Yehey!所以,我提出我的查詢剛while語句後使用的語法如下:

$ result6 =請求mysql_query(「更新tbl_room JOIN tbl_reservation ON tbl_room.roomID = tbl_reservation.roomID AND tbl_reservation.cus_fname = '$ cusFN' 和tbl_reservation .cus_lname ='$ cusLN' SET tbl_room.reserve = tbl_room.reserve-1「);

感謝所有提供幫助的人!上帝保佑你們! :)