ОБНОВИТЬ случайные номера результатов до одинаковых результатов - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь обновить столбец из другой таблицы, что означает:

SELECT DISTINCT id FROM creature WHERE map = 389;

Это SQL даст мне такой результат:

11323
11322
11324
11520
11321

Что я хочу, чтобы обновить creature_template lootid = 11323, где entry = 11323, поэтому это выглядит следующим образом:

UPDATE creature_template SET lootid = 11323 WHERE entry = 11323

Я пробовал это:

UPDATE creature_template SET lootid = 
    (SELECT DISTINCT id
    FROM creature
    WHERE map = 389) WHERE lootid = entry;

Я уверен, что это неверно, просто это не логика c но не смог найти логического ответа для этого.

Даже REPLACE мог бы работать вместо UPDATE, так что любой будет работать.

1 Ответ

1 голос
/ 30 января 2020

Вам нужно JOIN с UPDATE:

UPDATE creature_template ct 
     INNER JOIN creature c
     ON c.id = ct.entry 
     SET ct.lootid  = c.id
WHERE c.map = 389;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...