MySQL-запрос внутри запроса?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 MySQL-запрос внутри запроса?

Сообщение Anonymous »

Я пытаюсь понять, как оптимизировать функцию, которую пытаюсь создать в PHP/mySQL.
У меня есть таблица со списком вещей, некоторые из них вещи являются зависимостями для других вещей в таблице. Я собираюсь запросить все вещи, которые не имеют зависимостей, а затем запросить все вещи, которые зависят от этих первых вещей, и в некоторых случаях будет третий уровень зависимостей.
В идеале это вернется в формате, который можно проанализировать как массив, где есть элемент под названием «зависимости», который содержит другой массив вещей, которые были во втором запросе, имеющий собственный элемент «зависимости».
Таблица выглядит примерно так:

Код: Выделить всё

ID  | Thing  | Parent
01  | Item01 | NULL
02  | Item02 | NULL
03  | Item03 | 01
04  | Item04 | 01
05  | Item05 | 02
и я бы хотел, чтобы он возвращал что-то вроде:

Код: Выделить всё

Item01
>> Item03
>> Item04
Item02
>> Item05
Результат будет немного сложнее, чем массив PHP, но я надеюсь, что это иллюстрирует то, к чему я стремлюсь. Прямо сейчас я просто запрашиваю, где Parent имеет значение Null, а затем выполняю второй запрос для каждого результата, используя, где Parent — это идентификатор результата, а затем еще один запрос, чтобы получить что-либо, что зависит от результатов второго запроса.
Это работает, но для базы данных, содержащей более 1000 элементов, это приводит к сотням запросов только для составления единого списка... Я уверен, что должен быть способ выполнить какой-то вложенный запрос или использовать объединения или что-то еще, чтобы объединить это в один запрос...
Кроме того, у каждого элемента есть другие столбцы, помимо имени, и если у него есть родительский элемент, и мне каким-то образом нужно вложить это, чтобы каждая зависимость была указана внутри родитель...

Подробнее здесь: https://stackoverflow.com/questions/785 ... in-a-query
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»