如果我的 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中的id,基于字段kdfungsi。
所以对于图像2中的值parent_id,结果是这样的:
- ID 736,其父 ID:735
- ID 737,其父 ID:735
- ID 738,其父 ID: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。
我需要根据图像 1 中显示的字段 kdfungsi 填充图像 2 上的 parent_id。
我怎样才能做到这一点?
最佳答案
要从 master_lookups 表中获取 id 值,您可以执行以下操作:
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
关于php - 如何使用mysql查询获取parent_id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41370603/