2015-04-16 3 views
2

В настоящее время я работаю над своим запросом. Итак, у меня есть две таблицы: tbl_room и tbl_reservation. Я хотел бы сделать запрос на обновление со следующими условиями:UPDATE, JOIN и WHERE MySQL

Decrement номер счетчик на 1 в tbl_room если:

  1. Первое и последнее имя клиента совпадает с первой и фамилией в tbl_reservation
  2. tbl_reservation номер ID совпадает с tbl_room номер ID

в настоящее время я застрял с этим:

$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 "); 

Это мои таблицы:

---------- 
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

Я попытался использовать тот же запрос. Я думаю, мне нужно использовать join вместо этого, поскольку они принадлежат к таблицам diff. –

1

Я уже придумал с правом запроса. Yehey! Так что я переехал мой запрос только после утверждения в то время и используется следующий синтаксис:

$ result6 = mysql_query ("UPDATE tbl_room РЕГИСТРИРУЙТЕСЬ tbl_reservation ON tbl_room.roomID = tbl_reservation.roomID И tbl_reservation.cus_fname = '$ cusFN' И tbl_reservation .cus_lname = '$ cusLN' SET tbl_room.reserve = tbl_room.reserve-1 ");

Спасибо всем, кто предложил помощь! Безбожный! :)