2013-04-07 5 views
2

Я хочу написать запрос, как это:Обновление с помощью оператора SELECT

UPDATE `test_credit` 
SET `test_credit`.`credit`=(`test_credit`.`credit`-((`test_credit`.`credit`/100)*5)) 
WHERE `test_credit`.`name` = `users`.`uname` 

на самом деле я хочу, чтобы получить запрос на users. uname = test_credit. name но mysql сказать, что у него есть ошибка и реализовать users. uname в качестве столбца

Каков правильный запрос?

ответ

4

Вам необходимо явно соединить его с таблицей users. Насколько я понимаю, исходя из вашего запроса, вы хотите рассчитать credit, если на обеих таблицах существует names.

Дайте этому попытку,

UPDATE test_credit a 
     INNER JOIN users b 
      ON a.name = b.uname 
SET  a.credit = (a.credit - ((a.credit/100) * 5.0)) 
-- WHERE b.parent= "example" 
+0

, если у вас есть дополнительные вопросы, просто напишите комментарий ':') –

+0

Tanx мой друг он работает, и если я говорю условие я должен написать, как это? ОБНОВЛЕНИЕ test_credit INNER JOIN пользователи б ПО a.name = b.uname И b.parent = "пример" SET a.credit = (a.credit - ((a.credit/100) * 5,0)) – user1718141

+0

поскольку он использует 'INNER JOIN', вы можете добавить его в предложение WHERE, см. мое обновление. –

Смежные вопросы