0

次のクエリを 1 つにマージしようとしていますが、何を試してもうまくいかないようです。その考え方は、自動インクリメント フィールドを持つ一時テーブルに並べ替えられたリストを挿入し、新しいリストを取得して、更新された値で元のテーブルを更新することです。

INSERT INTO `TempRank` (`id`, `power`) 
SELECT `Rankable`.`id`, `Rankable`.`SA` AS `power` 
FROM `Rankable` 
INNER JOIN `Accounts` ON `Accounts`.`id` = `Rankable`.`id`
WHERE `Accounts`.`active` = '1' 
ORDER BY `power` DESC;

UPDATE `Rankable`, `TempRank`
SET `Rankable`.`id` = `TempRank`.`id`, 
    `Rankable`.`Rank` = `TempRank`.`Rank`
WHERE `Rankable`.`id` = `TempRank`.`id`

どんな情報でも大歓迎です。あなたの答えを待っている間、私はこれに取り組み続け、私が見つけたものを更新します. ご協力ありがとう御座います!

4

1 に答える 1

0
UPDATE rankable r INNER JOIN temprank t ON r.id=t.id SET r.rank=t.rank
于 2013-03-25T19:50:33.783 に答える