Обновите другие поля таблицы, основанные в одной строке той же таблицы MySQL

0

Изображение ниже объясняет, что мне нужно сделать:

Изображение 174551

Другими словами, мне нужно обновить многие строки в таблице, используя некоторые данные, содержащиеся в одной строке (в частности, столбцы bankId, proj_day и liq_day, напечатанные красным цветом на изображении выше). Обратите внимание, что значение столбца "id" совпадает с столбцом "entryID" (зеленая метка). Конечно, запрос, который я построил, не работает. Там больше строк, и мне нужно обновить все, на основе id, соединенного с entryId.

  • 2
    Большинство людей здесь хотят форматированный текст, а не изображения (или ссылки на изображения).
  • 0
    Что вы пробовали? Покажите нам вашу текущую попытку запроса!
Показать ещё 3 комментария
Теги:
sql-update
join
subquery

1 ответ

0
Лучший ответ

Я попытался с вашим запросом, и он работает. Я также добавил некоторые выборочные данные здесь, вы можете проверить его и посмотреть.

Единственное отличие, которое я вижу в вашем запросе, состоит в том, что у вас нет самостоятельного присоединения (соединение с одной и той же таблицей). Но в любом случае это должно сработать.

UPDATE tbl A
INNER JOIN tbl B
    ON A.entryId = B.id
SET A.bankId = B.bankId, A.proj_day = B.proj_day, A.liq_day = B.liq_day
WHERE A.userid = 307 AND A.entryId > 0;
  • 0
    Вы правы! Мне стыдно. Мой запрос был верным, но я использовал две базы данных (одна является копией другой) для внутреннего объединения, и я видел результаты в другой базе данных (которая не получила обновления). Какой беспорядок ... спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню