ОБНОВЛЕНИЕ запроса - @ - PullRequest
0 голосов
/ 14 апреля 2020

Мне нужно выполнить рекурсивный вызов для той же таблицы с именем таблица organisation_smd.

У меня есть 4 поля данных. 1. идентификатор_организации 2. тип_организации 3. идентификатор_презента_ родителя (это другой идентификатор_организации в той же таблице) 4. первичный_организация_ид (в настоящее время его значение равно нулю)

Мне нужно найти и обновить значение primary_organisation_id с помощью значения_организации_идентификатор_организации_организации = '= PRIMARY_MERCHANT '.

update organisation_smd os1 
    inner join (
                select organisation_id 
                from organisation_smd 
                where organisation_type = 'PRIMARY_MERCHANT'
                and organisation_id = os1.organisation_parent_id
                ) as os2 
set os1.primary_organisation_id = os2.organisation_id 
where os1.organisation_id='6bc7c29d664c4f1eb3cb96b1e573b2ed';

Как мне этого добиться? Я хочу, чтобы organisation_parent_id внутри sub_query получал желаемый результат.

1 Ответ

1 голос
/ 14 апреля 2020

Для объединения требуется предложение ON, что-то вроде:

on os2.organisation_id = os1.organisation_parent_id

, которое находится внутри подзапроса в предложении WHERE, но вы должны удалить его, поэтому, возможно, вы захотите следующее:

update organisation_smd os1 
inner join (
  select organisation_id 
  from organisation_smd 
  where organisation_type = 'PRIMARY_MERCHANT'
) as os2 on os2.organisation_id = os1.organisation_parent_id
set os1.primary_organisation_id = os2.organisation_id 
where os1.organisation_id='6bc7c29d664c4f1eb3cb96b1e573b2ed';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...