我有一个自引用表,我想在一个查询中添加父和子示例。有没有更好的方法来做到这一点,以类似于我下面的方式分解它?
+---------------------+
| example |
+---------+-----------+
| id | parent_id |
+---------+-----------+
| 1 | |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 5 | |
| 6 | 5 |
| 7 | 5 |
+---------+-----------+
DECLARE example_id INT;
INSERT INTO `example` (parent_id) VALUE("");
SET example_id = LAST_INSERT_ID();
INSERT INTO `example` (parent_id) VALUE (example_id);
答案 0 :(得分:2)
如果您提到的问题是树形结构,最好检查一下this article。如果您只有1级孩子的父母,那么您的方式可能是最简单的方法。
答案 1 :(得分:0)
你做事的方式看起来不错
在实际示例中,您可能会根据某些条件执行insert - select
。
INSERT INTO example SELECT
null as id
,e.id as parent_id
,10 as field1
,....
FROM example e WHERE e.somefield = 10 ORDER BY e.id DESC LIMIT 1;