Вложенный выбор в MySQL v 3.23 - PullRequest
       10

Вложенный выбор в MySQL v 3.23

0 голосов
/ 23 августа 2010

Я хочу написать этот sql select statment в MySQL v 3.23

select * 
    from radacct 
    where username in ( 
        select username 
            from radcheck 
            where Attribute = 'max-weekly-session'
    );

но скажи

ERROR 1064: You have an error in your SQL syntax near 
'select username from radcheck where Attribute= 'max-weekly-session')' 
at line 1

в mysql v 5 это нормально, но как я могу это сделать в v 3.23?

Ответы [ 5 ]

1 голос
/ 23 августа 2010

Полная совместимая со стандартами поддержка подзапросов была добавлена ​​в 4.1 .До этого вам приходилось использовать JOIN и другие обходные пути для достижения того же эффекта.

См. 12.2.8.11.Перезапись подзапросов как объединений для более ранних версий MySQL

1 голос
/ 23 августа 2010

попробуйте это:

select a.* 
from radacct a 
join radcheck b on a.username = b.username
where b.Attribute = 'max-weekly-session'
0 голосов
/ 13 ноября 2012

Мне нужно что-то похожее, но все приведенные здесь решения приводят к ошибке, когда из radacct возвращаются несколько записей.Я исправил это, добавив group by к ключу radacct.

select ra.* 
from radacct ra
inner join radcheck rc on ra.username = rc.username
where rc.Attribute = 'max-weekly-session'
group by ra.Id
0 голосов
/ 23 августа 2010

вложенные выборки недоступны в версии MySQL <4.1 </p>

, следующие будут работать

select radacct.* 
from radacct inner join radcheck on radacct.username = radcheck.username 
where radcheck.Attribute= 'max-weekly-session'
0 голосов
/ 23 августа 2010
select * 
from radacct ra
inner join radcheck on ra.username = rc.username
where rc.Attribute = 'max-weekly-session'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...