Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Помогите с деревьями (simplex) 03/08/2007 - 02:56:13
      Re: Помогите с деревьями (xeim) 03/08/2007 - 06:17:34
      Re: Помогите с деревьями (simplex) 03/08/2007 - 13:01:31
      Re: Помогите с деревьями (simplex) 03/08/2007 - 14:44:44
      Re: Помогите с деревьями (xeim) 04/08/2007 - 12:35:29
      Re: Помогите с деревьями (simplex) 04/08/2007 - 17:45:40

> Original message text:
> From: simplex - 03/08/2007 - 02:56:13
> Subject:Помогите с деревьями
> -----------------
> использую для получения данных из бинарного дерева множеств следующий запрос sql
>
> SELECT A.*, CASE WHEN A.section_left + 1 < A.section_right THEN 1 ELSE 0 END AS nflag FROM elit_catalog_tree A, elit_catalog_tree B WHERE B.section_id = 2 AND A.section_left >= B.section_left AND A.section_right <= B.section_right ORDER BY A.section_left
>
> он берет все дерево вниз от указателя 2
>
> поля таблицы
> section_id , section_name , section_left, section_right , section_level
>
> выборка на ура
>
> но надо чтобы вместе с выборкой из этой таблицы происходила еще одновременная выборка из 2й таблицы
> т.е насколько я понимаю inner join прикрутить
>
> таблица 2
>
> BBBBBBBBB
>
> id | name | status
>
> section_id=id в этой таблице
>
> на выходе получаем все поля первой + еще поля 2й
>
> помогите плиз
>
> как то коверкал запрос и у меня просто у тупую сливались 2е таблицы без номерации... но это не дело...
>


From: xeim - 03/08/2007 - 06:17:34
Subject:Помогите с деревьями
-----------------
Очень надеюсь, что это какая-то научная разработка, и вы хоть в математике разбираетесь хорошо :-)

Попробуйте так, заменив `table2` на имя вашей "Таблицы 2":
SELECT
`A`.`section_id`,
`A`.`section_name`,
`A`.`section_left`,
`A`.`section_right`,
`A`.`section_level`,
`A`.`section_left` + 1 < `A`.`section_right` AS `nflag`,
`table2`.`id`,
`table2`.`name`,
`table2`.`status`
FROM `elit_catalog_tree` `A`,
`elit_catalog_tree` `B`
INNER JOIN `table2`
ON `A`.`section_id` = `table2`.`id`
WHERE
`B`.`section_id` = 2 AND
`A`.`section_left` >= `B`.`section_left` AND
`A`.`section_right` <= `B`.`section_right`
ORDER BY `A`.`section_left`


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
31992



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |