[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Одним запросом получить все вложенности
Страницы: 1, 2
Spydel
Добрый день!

Прошу помочь Вас справится с такой задачей:
Есть таблица "CATEGORIES"
Есть 3 столбца: "ID", "TITLE", "PARENT"

У всех категорий, которые не чему не принадлежат, в столбце PARENT стоит 0, а соответственно, у других отличных от 0, это родительская категория.
Вообщем все стандартно :)

Мне нужно выбрать одним запросом все категории родители (PARENT = 0) и все принадлежащие к каждой родительской категории ее потомки. Запрос такой:

$sql = "
SELECT
*
FROM
`CATEGORIES` as catMain
INNER JOIN
`CATEGORIES` as catParent
ON
catParent.`PARENT` = catMain.`ID`
WHERE
catMain.`ACTIVE` = 1 AND catMain.`PARENT` = 0
AND
(catParent.`ACTIVE` = 1)
ORDER BY catParent.`PARENT` ASC
"
;


Возвращает все дочерние причем в верном порядке, но не возвращает в этом запросе родительские у которых PARENT 0.

Я не совсем уверен в своем запросе, но все же, может этот можно доработать, или может есть другой способ?
kaww
 SELECT
catMain.*, catParent.*
FROM
`CATEGORIES` as catMain
INNER JOIN
`CATEGORIES` as catParent
ON
catParent.`PARENT` = catMain.`ID`
WHERE
catMain.`ACTIVE` = 1 AND catMain.`PARENT` = 0
AND
(catParent.`ACTIVE` = 1)
ORDER BY catParent.`PARENT` ASC
Spydel
kaww, результат такой же (
Spydel
MiksIr, да, только 1-й и 2-й уровни
kaww
Spydel, действительно, затупил ).
catMain.fiel1 as main_field1, ... catMain.fieln as main_fieldn, catParent.field1 as parent_field1, ....atParent.fieldn as parent_fieldn
Spydel
MiksIr, не совсем понял.
ID И TITLE повторяться не будут.
Spydel
MiksIr, в таком виде мне нужно получить данные
Spydel
MiksIr, дело в том, что сюда не попадают записи, у которых PARENT = 0
Spydel
Я бы хотел, чтобы на выходе было:

+------+--------+--------------------+
| ID | PARENT | TITLE |
+------+--------+--------------------+
| 1 | 0 | Название 1 |
| 3 | 1 | Название 1.3 |
| 5 | 1 | Название 1.5 |
| 2 | 0 | Название 2 |
| 4 | 2 | Название 2.4 |
| 6 | 2 | Название 2.6 |
+------+--------+--------------------+

А сейчас так:

+------+--------+--------------------+
| ID | PARENT | TITLE |
+------+--------+--------------------+
| 3 | 1 | Название 1.3 |
| 5 | 1 | Название 1.5 |
| 4 | 2 | Название 2.4 |
| 6 | 2 | Название 2.6 |
+------+--------+--------------------+
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.