volter
28-03-2009, 19:36
Добрый день, хотел проконсультироваться у знающих людей, реально ли оптимизировать данный запрос ?
Таблица test где продемонстрирована иерархия разделов.
parent_id - идентификатор раздела РОДИТЕЛЯ
+----+-------------+-------------+
| id | name | parent_id |
+----+-------------+-------------+
| 1 | aa | NULL |
| 2 | bb | 1 |
| 3 | cc | 2 |
| 4 | cc | NULL |
| 5 | dd | 4 |
| 6 | ee | 5 |
+----+------------+-------------+
Допустим нужно выбрать раздел 'cc' который относится к разделу 'bb' который в свою очередь относится к разделу 'aa'.
Мой вариант запроса:
select * from test where `name`='cc' and `parent_id`=(
select id from test where `name`='bb' and `parent_id`=(
select id from test where `name`="aa"
)
);
Есть ли иные пути создания запроса, можно ли укоротить запись или сделать ее выполнение быстрее чем в данном примере?
Заранее благодарю.
Таблица test где продемонстрирована иерархия разделов.
parent_id - идентификатор раздела РОДИТЕЛЯ
+----+-------------+-------------+
| id | name | parent_id |
+----+-------------+-------------+
| 1 | aa | NULL |
| 2 | bb | 1 |
| 3 | cc | 2 |
| 4 | cc | NULL |
| 5 | dd | 4 |
| 6 | ee | 5 |
+----+------------+-------------+
Допустим нужно выбрать раздел 'cc' который относится к разделу 'bb' который в свою очередь относится к разделу 'aa'.
Мой вариант запроса:
select * from test where `name`='cc' and `parent_id`=(
select id from test where `name`='bb' and `parent_id`=(
select id from test where `name`="aa"
)
);
Есть ли иные пути создания запроса, можно ли укоротить запись или сделать ее выполнение быстрее чем в данном примере?
Заранее благодарю.