От CTE до кода хранимой процедуры mySQL

Это запрос с использованием sql CTE для создания транзитивного замыкания таблицы, содержащей отношения между пользователями (ребра графа). Как это можно сделать в MySQL?

WITH RECURSIVE transitive_closure (a, b, distance, path_string) AS
(ВЫБЕРИТЕ расстояние a, b, 1 AS,
         || '' || б || '' AS path_string
  ОТ края
 ГДЕ a = 1 - источник

  СОЮЗ ВСЕХ

  ВЫБЕРИТЕ tc.a, eb, tc.distance + 1,
         tc.path_string || еб || '' AS path_string
  ОТ края КАК e
  ПРИСОЕДИНЯЙТЕСЬ к transitive_closure AS tc ON ea = tc.b
 ГДЕ tc.path_string НЕ НРАВИТСЯ '%' || еб || '%')
  SELECT * FROM transitive_closure
  ЗАКАЗАТЬ А, В, расстояние;

или, по крайней мере, найти все простые пути между двумя узлами без создания транзитивного замыкания для всех узлов. код взят из: http://techportal.inviqa.com/2009/09/07/graphs-in-the-database-sql-meets-social-networks/

0 ответов

Другие вопросы по тегам