Как создать запрос на соединение MySQL с иерархическими данными - PullRequest
0 голосов
/ 10 марта 2011

Мне нужно создать запрос на объединение для иерархических данных по 2 таблицам.Эти таблицы могут иметь неограниченное количество данных, и их структура выглядит следующим образом:

group_id      group_name       group_order
   1            group 1            2
   2            group 2            1


field_id    field_name    parent_group    field_order
   1         field 1           1               1
   2         field 2           2               2
   3         field 3           2               1

В настоящее время я могу получить правильный формат данных, используя 2 запроса на выборку со вторым запросом внутри цикла, созданного из результатов.первого запроса к таблице групп.

Структура данных, которые мне нужны из результата, выглядит следующим образом:

-group 2
      - field 3
      - field 2

- group 1
      - field 1

Возможно ли получить эти результаты из одного запроса mysql?Я прочитал документ mysql об иерархических данных, потому что я не уверен, как включить объединение.

Спасибо за просмотр

Ответы [ 2 ]

0 голосов
/ 10 марта 2011

Вам не нужно думать об этом с точки зрения иерархических данных, вы просто должны быть в состоянии выбрать свои поля и присоединиться к информации вашей группы. Попробуйте что-то вроде:

SELECT * 
FROM Fields AS F
INNER JOIN Groups AS G 
ON G.group_id = F.parent_group 
ORDER BY group_order, field_order

Затем вы получите каждое поле в виде строки с соответствующей группой, также в правильном порядке группы. Ваша петля должна быть способна обрабатывать нужный вам дисплей.

0 голосов
...