Php SQL联接以更新另一行具有2的行?

Php SQL联接以更新另一行具有2的行?,php,sql,Php,Sql,这就是我尝试过的: UPDATE tbl_questions JOIN (SELECT tbl_users.uid, tbl_users.is_spam FROM tbl_users JOIN tbl_questions ON tbl_users.uid = tbl_questions.uid ) SET question_type_id = 2 WHERE is_spam = 2; 我想将这些问题question\u type\u id更新为2,其中用户表为\u spam=2。 我的sql

这就是我尝试过的:

UPDATE tbl_questions 
JOIN (SELECT tbl_users.uid, tbl_users.is_spam
FROM tbl_users JOIN tbl_questions ON tbl_users.uid = tbl_questions.uid
)
SET question_type_id = 2
WHERE is_spam = 2;
我想将这些问题question\u type\u id更新为2,其中用户表为\u spam=2。 我的sql写为错误
每个派生表都必须有自己的别名

tbl_questions => uid, question_type_id,
tbl_users => uid, is_spam,

子查询必须具有别名

UPDATE tbl_questions 
JOIN 
(
   SELECT tbl_users.uid, tbl_users.is_spam
   FROM tbl_users 
   JOIN tbl_questions ON tbl_users.uid = tbl_questions.uid
) sub_query_alias on sub_query_alias.uid = tbl_questions.uid
SET question_type_id = 2
WHERE is_spam = 2;
我在上面的查询中使用了
sub\u query\u alias
。更简单的查询是

UPDATE tbl_questions q
JOIN tbl_users u ON u.uid = q.uid AND u.is_spam = 2
SET q.question_type_id = 2
请检查以下内容:-

将tbl\U问题中的t1集t1.QUOTE\U type\U id=2更新为t1
在t1.tbl_questions.uid=t2.uid上以t2的身份加入tbl_用户,其中t2.is_spam=2

我添加了一个更简单的查询版本。