php - 如何使用mysql查询获取parent_id?

标签 php mysql mysql-5.7

如果我的 SQL 查询是这样的:

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

那么结果是这样的:

enter image description here

(图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

那么结果是这样的:

enter image description here

(图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/

相关文章:

php - 在javascript中打印页面

php - 为什么解释器没有给出第一个代码的错误

MYSQL表中表

php - 将数组保存到数据库中

mysql - 如何在 MySQL 中清理或调整 ibtmp1 文件的大小?

mysql - MySQL 中生成的列中的日期时间错误

php - 对列进行分组

php - MySQL 语法错误 - 不确定问题

mysql - 在使用 MySQL 的 C API 在准备好的语句中进行第一次获取之前,如何了解返回参数的类型和长度?

PHP 文件上传到 linux cPanel 显示成功,但找不到文件