У меня ровно один цикл длины 3 в моем графике дорог.Я пытаюсь удалить дорогу, которая идет от AB и BA, которая является частью цикла.Если я удалю одну дорогу, это удалит цикл и превратит мой график в дерево.Я могу найти дорогу, которая делает это, используя оператор с .Тем не менее, я хочу затем удалить из исходной таблицы на основе того, что я нашел, но мне кажется, что я не могу использовать оператор удаления в моем коде.Я слышал о «соединениях», но я не уверен, как я мог бы использовать это здесь, и был бы признателен за некоторые советы.
Следующий код находит несколько дорог, которые способствуют циклу длины 3, но я ограничил его1, потому что я хочу удалить только одну дорогу.
%%sql
with cycle as(
select s1.A as s1, s3.A as s3
from streets s1, streets s2, streets s3
where s1.B = s2.A and s2.B = s3.A and s3.B = s1.A
limit 1)
select A, B
from streets, cycle
where (s1 = A and s3 = B) or (s3 = A and s1 = B)
Возвращает:
Я хочу удалить две строкикоторые соответствуют значениям A и B в моей исходной таблице, тем самым удаляя дорогу между GadgetCo и Thing Industries