2010-04-23 7 views
1

Je sais que le code MySQL suivant est incorrect certains peuvent me aider à résoudre ce code à utiliser les deux tables que je tente de saisir l'id de learned_skills et skill_id de users_skills pour AND skill_id = idMySQL problème UPDATE

Voici le MySQL code.

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

Voici l'erreur que je reçois

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

Comment est-ce incorrect? Y a-t-il une erreur? Ne fait-il pas ce que tu veux? Comment l'invoquez-vous depuis l'application appelante? – bdonlan

Répondre

1

Vous pouvez effectuer UPDATE opérations couvrant plusieurs en utilisant la syntaxe JOIN, comme dans l'exemple suivant:

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 pour résoudre le problème suivant. Cela aurait été génial si la question initiale avait également reçu une réponse, cependant. –

0

Jetez un oeil à UPDATE Syntax et voir le premier utilisateur commentaire de l'aide.

1

Le problème est l'instruction select sur la première ligne. Retirez-le et exécutez-le séparément pour voir si cela fonctionne. Aussi, qualifiez vos deux tables dans une jointure comme Daniel Vassalo l'a suggéré. Sinon, il ne sait pas où trouver la moitié des colonnes de