Как обновить столбец в SQL по аналогичным данным в другой таблице

0

Привет, ребята, пример данных в двух таблицах:

У меня есть таблица MSISDNs_for_Import с двумя столбцами:

msisdn          sim
359898855753    99085719352

И моя другая таблица - SIMs_for_Import с этими двумя столбцами:

IMSI                      SIMNO
284010160719352           8935901990857193529

У меня вопрос, как я могу сделать, чтобы обновить мой первый столбец таблицы sim со значением второго столбца таблицы simno

Я пытаюсь с этим запросом:

UPDATE MSISDNs_for_Import
SET MSISDNs_for_Import.sim=
  (SELECT SIMs_for_Import.SIMNO
   FROM SIMs_for_Import
   WHERE MSISDNs_for_Import.sim=SIMs_for_Import.SIMNO )

но он сохраняет нули в столбце MSISDNs_for_Import.sim

  • 0
    вам нужно обновить поле "sim" с помощью поля "SIMNO" в другой таблице, поэтому вам нужно присоединиться и обновить. Для объединения двух таблиц вам нужно общее поле
  • 1
    Похоже, между двумя таблицами нет никакой связи, которая позволила бы вам определить, какое значение SIMNO в SIMs_for_Import должно заменить какое значение sim в MSISDNs_for_Import
Показать ещё 2 комментария
Теги:
database

2 ответа

0

Я думаю, может быть, вы ищете что-то вроде этого.

UPDATE ms
SET 
    ms.sim= si.SIMNO
FROM 
    MSISDNs_for_Import ms
INNER JOIN SIMs_for_Import si
    ON ms.sim = LEFT(RIGHT(si.SIMNO, LENGTH(ms.sim) + 1), LENGTH(ms.sim))
0

Попробуй это

UPDATE MSISDNs_for_Import a
        JOIN
    SIMs_for_Import b 
SET 
    a.sim = SUBSTRING(b.SIMNO, 8, 12)
WHERE
    a.sim = SUBSTRING(b.SIMNO, 8, 11);

Ещё вопросы

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