0

自己参照テーブルがあり、親と子の両方の例を 1 つのクエリに追加したいと考えています。私が以下に持っているのと同様の方法でそれを分解するより良い方法はありますか?

+---------------------+
|       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);
4

2 に答える 2

2

質問でツリー構造について言及している場合は、この記事を確認してください。親の子レベルが 1 つしかない場合は、おそらく最も簡単な方法です。

于 2011-05-19T12:25:58.903 に答える
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;
于 2011-05-19T12:31:32.850 に答える