Как получить parent_id с помощью запроса MySQL?

Если мой SQL-запрос выглядит так:

SELECT * FROM master_lookups WHERE `type` = 'fungsi'`,

тогда результат будет таким:

введите описание изображения здесь

(изображение 1)

Если мой SQL-запрос выглядит так:

SELECT @rownum := @rownum + 1 AS id,
NULL AS parent_id,
kdsfungsi AS `code`,
nmsfungsi AS `name`,
'sub_fungsi' AS `type`,
CONCAT('{"kdfungsi":"', kdfungsi, '"}') AS information
FROM   dblaplakgar.t_sfungsi
CROSS JOIN (SELECT @rownum := 735) r

тогда результат будет таким:

введите описание изображения здесь

(изображение 2)

Я хочу, чтобы результат изображения 2, существует значение parent_id. Значение поля parent_id взято из Я бы в изображении 1, основанном на поле kdfungsi.

Так что в отношении стоимости parent_id на изображении 2 результат выглядит так:

  • идентификатор 736, его родительский идентификатор: 735
  • идентификатор 737, его родительский идентификатор: 735
  • идентификатор 738, его родительский идентификатор: 734

Как только я получаю parent_id, Я использую этот запрос для вставки:

INSERT INTO master_lookups (id,parent_id,`code`,`name`,`type`,information)
SELECT @rownum := @rownum + 1 AS id,
NULL AS parent_id,
kdsfungsi AS `code`,
nmsfungsi AS `name`,
'sub_fungsi' AS `type`,
CONCAT('{"kdfungsi":"', kdfungsi, '"}') AS information
FROM   dblaplakgar.t_sfungsi
CROSS JOIN (SELECT @rownum := 735) r

Есть parent_id значения, которые по-прежнему равны NULL.

Мне нужно заполнить parent_id на изображении 2 на основе поля kdfungsi как видно на рисунке 1.

Как я могу это сделать?

0

Решение

Чтобы получить Я бы значение из master_lookups Таблица, вы могли бы сделать это:

SELECT     @rownum := @rownum + 1 AS id,
m.id AS parent_id,
t.kdsfungsi AS `code`,
t.nmsfungsi AS `name`,
'sub_fungsi' AS `type`,
CONCAT('{"kdfungsi":"', t.kdfungsi, '"}') AS information
FROM       dblaplakgar.t_sfungsi t
LEFT JOIN  master_lookups m
ON  m.type = 'fungsi'
AND m.code = t.kdfungsi
CROSS JOIN (SELECT @rownum := 735) r
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]