simplex
Новичок
Помогите со сложным запросом
использую для получения данных из бинарного дерева множеств следующий запрос 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й
на другом форуме написали решение
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`
но выдается ошибка Unknown column 'A.section_id' in 'on clause'
использую для получения данных из бинарного дерева множеств следующий запрос 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й
на другом форуме написали решение
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`
но выдается ошибка Unknown column 'A.section_id' in 'on clause'