Коррелированные подзапросы mysql

HI я хочу получить значение переменной из основного запроса внутри подзапроса

ВЫБЕРИТЕ t1., кв., считать (отличный (t4.col1)) как количество, ОТ t1 СЛЕДУЮЩЕЕ ВНЕШНЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ t2.col1, t2.col2, t2.col3 ОТ t2 ГДЕ t2.col1=t1.col1
ЗАКАЗАТЬ по t2.col2 DESC, t2.col1 DESC) как sq ON sq.col1=t1.col1
ЛЕВОЕ НАРУЖНОЕ СОЕДИНЕНИЕ t3 ВКЛ t3.col1=t1.col4 ЛЕВОЕ НАРУЖНОЕ СОЕДИНЕНИЕ t4 ВКЛ t4.col1=t1.col4 ГДЕ t3.col2=x ГРУППА ПО t1.col3 ПРЕДЕЛ 15

Как мне получить значение переменной t1.col1 внутри подзапроса sq, когда я присоединяюсь к нему в том же столбце??

1 ответ

Решение

Вы не можете, но следующий должен вернуть эквивалентные результаты, как запрос, который вы отправили.

SELECT  t1.col3            
FROM    t1 
        left outer join ( 
          select  t2.col1
                  ,t2.col2
                  ,t2.col3 
                  ,t2.col4
          FROM    t2 
        ) as sq on sq.col1 = t1.col1 
                   AND sq.col4 = t1.col1
where   t1.col2 = x 
group by 
        t1.col3 
limit 15

Примечание: исходный запрос, который вы разместили, содержит несколько синтаксических ошибок.

  • выберите * с группой по
  • упорядочить в под-выборе
  • используя внешний выбор в подвыборке (ваш вопрос)
Другие вопросы по тегам