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不是此位置的有效输入。 这个查询出了什么问题?
答案 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 强>