2010-04-23 4 views
1

Я знаю, следующий код MySQL не правильно может некоторые помочь мне исправить этот код, чтобы использовать обе таблицы Я пытаюсь захватить id от learned_skills и skill_id от users_skills для AND skill_id = idMySQL проблема UPDATE

Здесь есть MySQL код.

SELECT learned_skills.*, users_skills.* 
UPDATE learned_skills 
SET skill = '$skill', experience = '$experience', years = '$years' 
WHERE user_id = '$user_id' 
AND skill_id = id 

Здесь ошибка я получаю

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE learned_skills SET skill = 'some_skill', experience = '1 - 2 years' at line 2 
+0

Как это неправильно? Есть ли ошибка? Он просто не делает то, что вы хотите? Как вы вызываете это из вызывающего приложения? – bdonlan

ответ

1

Вы можете выполнять UPDATE операции, охватывающие мультипликатор с помощью синтаксиса JOIN, как в следующем примере:

UPDATE learned_skills ls 
JOIN user_skills us ON (us.skill_id = ls.id) 
SET  skill = '$skill', 
     experience = '$experience', 
     years = '$years' 
WHERE us.user_id = '$user_id'; 
+0

+1 для решения следующей задачи. Было бы здорово, если бы на исходный вопрос также был дан ответ. –

0

Посмотрите UPDATE Syntax и увидеть первый комментарий пользователя о помощи.

1

Проблема заключается в оператор выбора на первой линии. Удалите его и запустите его отдельно и посмотрите, работает ли это. Кроме того, квалифицируйте обе свои таблицы в том, как предложил Даниэль Вассало. В противном случае он не знает, где получить половину столбцов от