Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Синтаксис sid in (select .....)


Автор: fara 18.9.2005, 17:49
Код

select count(sid) from t1 where name='paid' and value='1' and sid in (select sid from t1 where name='type' and value='0')

В ответ mysql дает:
error in SQL syntax near select sid from t1 where name='type' and value='0'

в чем синтаксическая ошибка?

Автор: Mal Hack 18.9.2005, 17:59
Скорее всего твоя версия MySQL DataBase Server не поддерживает вложенные подзапросы.
На всякий попробуй sid IN заменить на sid =

Автор: fara 18.9.2005, 22:21
Моя версия MySQL 3.23.42-nt

Автор: Mal Hack 19.9.2005, 15:22
В данной версии нельзя использовать подзапросы. Так что либо переезжай на 4.1 (4.0). либо работай через два запроса.
Последний вариант ИМХО - лучше.

Автор: Bikutoru 19.9.2005, 17:46
Можно такую штуку проделать (правда работать будет медленно)
Код

SELECT COUNT(IF(name='type' AND value='0', sid, NULL)) FROM t1;

Или INNER JOIN использовать.
А можно поглядеть на структуру t1?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)