У меня есть facilities
таблица. Столбцы id
(основной), sector
(int) и located_in
(могут иметь значение NULL, ссылки id
в той же таблице).
В большинстве случаев столбец located_in
имеет значение NULL, но в некоторых случаях facilities
может находиться внутри другого facilities
.
В тех случаях, когда это происходит, я хочу, чтобы родительское средство не было частью результатов (удалено).
Объект может быть расположен только в другом объекте, который также НЕ находится в другом, поэтому он не достигает уровня n в глубину.
Набор данных ( Просмотр в SQLFiddle ):
+----+--------+------------+
| ID | sector | located_in |
+----+--------+------------+
| 1 | 2 | NULL |
| 2 | 2 | NULL |
| 3 | 4 | NULL |
| 4 | 1 | NULL |
| 5 | 5 | NULL |
| 6 | 2 | 2 |
+----+--------+------------+
Запрос ( Просмотр в SQLFiddle ):
SELECT * FROM facilities WHERE sector = 2;
Ожидаемый результат ( Просмотр в SQLFiddle ):
+----+--------+------------+
| ID | sector | located_in |
+----+--------+------------+
| 1 | 2 | NULL |
| 6 | 2 | 2 |
+----+--------+------------+
Фактический результат ( Просмотр в SQLFiddle ):
+----+--------+------------+
| ID | sector | located_in |
+----+--------+------------+
| 1 | 2 | NULL |
| 2 | 2 | NULL |
| 6 | 2 | 2 |
+----+--------+------------+