То, что я хочу для каждого продукта, получить URL для этого продукта на основе кода отдела_идентификатора продукта.Работает рекурсивный запрос, строка, которая является проблемой, в основном
select id, title, parent_id from departments where id = prod.department_id
Я получаю ошибку ERROR 1054 (42S22): Unknown column 'prod.department_id' in 'where clause'
.
Если я заменю prod.department_id в этой строке константой вроде 4все работает, только я получаю один и тот же URL для каждого продукта.
Я не могу получить доступ к столбцам каждого продукта внутри подзапроса, как мне это сделать?Я использую mysql 8.0.12 на OS X, вот полный запрос:
select id, title, short_description,
(base_price+base_price*tax) as retail_price,
lower(concat('www.someurl.com/',
(with recursive cte (id, title, parent_id) as (
select id, title, parent_id from departments where id = prod.department_id
union all (
select p.id, p.title, p.parent_id
from departments p inner join cte on cte.parent_id = p.id
)
) select
GROUP_CONCAT(lower(title) order by id SEPARATOR '/') as path from cte
))) as url
from products prod
inner join featured_products on featured_products.product_id = prod.id;