0

これは私が試したことです:

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;

ユーザーテーブル is_spam = 2 の質問 question_type_id を 2 に更新したいと思います。私の sql はエラーとして書き込みますEvery derived table must have its own alias...

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

2 に答える 2

1

サブクエリにはエイリアス名が必要です。

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_query_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
于 2013-06-07T10:59:53.083 に答える
0

これをチェックしてください:-

UPDATE t1 SET t1.question_type_id = 2 from tbl_questions AS t1 JOIN tbl_users AS t2 ON t1.tbl_questions.uid = t2.uid WHERE t2.is_spam = 2;

于 2013-06-07T11:07:21.903 に答える