来自""的错误使用更新查询

时间:2015-02-26 06:19:46

标签: mysql

select email,test_status,candidate_id,user_id from candidate_tests,candidate_candidates,users where candidate_tests.candidate_id=candidate_candidates.id and candidate_candidates.user_id=users.id;

update candidate_tests set candidate_tests.test_status='completed' from users as U inner join candidate_candidates as cc on candidate_candidates.user_id=users.id  inner join candidate_tests as ct on  candidate_tests.candidate_id=candidate_candidates.id where users.email='abcd@efgh.com';

错误是:from不是此位置的有效输入。 这个查询出了什么问题?

3 个答案:

答案 0 :(得分:0)

您的更新语法错误。必须是:

update candidate_tests  as ct  inner join candidate_candidates as cc
 on  ct.candidate_id=cc.id
inner join  users as U 
 on cc.user_id=U.id  and  u.email='abcd@efgh.com'
set candidate_tests.test_status='completed'

答案 1 :(得分:0)

阅读UPDATE和JOIN语法参考: https://dev.mysql.com/doc/refman/5.7/en/update.html https://dev.mysql.com/doc/refman/5.7/en/join.html

您正在将联接放在错误的位置

        UPDATE users as U 
    INNER JOIN candidate_candidates as cc 
            ON candidate_candidates.user_id=users.id 
    INNER JOIN candidate_tests as ct 
            ON candidate_tests.candidate_id=candidate_candidates.id 
           SET candidate_tests.test_status='completed' 
         WHERE users.email='abcd@efgh.com';

答案 2 :(得分:0)

无需在更新查询中使用“from”。请将您的查询更改为

update candidate_tests  as ct  inner join candidate_candidates as cc
 on  ct.candidate_id=cc.id
inner join  users as U 
 on cc.user_id=U.id  and  u.email='abcd@efgh.com'
set candidate_tests.test_status='completed'

<强> REFERENCE