@lordprotein

Как применить INNER JOIN к результату запроса?

Доброго времени суток: имеется запрос, который выводит таблицу со всеми дочерними подменю главного меню.
Задача: применить к данному результату INNER JOIN, но мне не известно, как именно это сделать.

Запрос:
SET @var = 4;

SELECT *
FROM menu
WHERE FIND_IN_SET(ID,(SELECT GROUP_CONCAT(lv SEPARATOR ',') FROM (
SELECT @pv:=(SELECT GROUP_CONCAT(ID SEPARATOR ',')
FROM menu WHERE submenu IN (@pv)) AS lv FROM menu
JOIN (SELECT @pv:=@var)tmp
WHERE submenu IN (@pv)) a))

UNION ALL
SELECT *
FROM menu
WHERE ID = @var
ORDER BY ID;


Результат:
YVHm7pBgwjE.jpg

P.S. Код был заимствован из
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
@alexalexes
Было бы с чем соединять...
SET @var = 4;

Select * from
(
-------------Ваш сложный подзапрос --------------------
SELECT *
FROM menu
WHERE FIND_IN_SET(ID,(SELECT GROUP_CONCAT(lv SEPARATOR ',') FROM (
SELECT @pv:=(SELECT GROUP_CONCAT(ID SEPARATOR ',')
FROM menu WHERE submenu IN (@pv)) AS lv FROM menu
JOIN (SELECT @pv:=@var)tmp
WHERE submenu IN (@pv)) a))

UNION ALL
SELECT *
FROM menu
WHERE ID = @var
ORDER BY ID
-------конец сложного подзапроса--------------
) complicated_menu
inner join ваша_таблица vt on complicated_menu.id = vt.id
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
select
*
from ( select .... ) as abc
inner join (select ...) as js on ...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы