Попробуйте этот запрос, он работает
select name from users where id in (select userid from logs group by userid having count(userid) = '".$inputvalue."')
Объектные файлы имеют тенденцию становиться большими из-за больших объемов дублированного кода и символов, помещенных в несколько объектных файлов. Обычно это вызывается копиями подставляемых функций и инстанцированным кодом шаблона.
Получающийся исполняемый файл очень, намного меньше, чем сумма всех объектных файлов как дублированные слабые символы, и могут быть отброшены не имеющие ссылки символы.
Лично, я не волновался бы о размере объектного файла, но если Вы хотите уменьшить его, затем минимизируют использование подставляемых функций и полагают, что код шаблона хранения в отдельных файлах из другого кода и использования явного инстанцирования генерирует необходимые инстанцирования только в одном месте.
Пример
Предположим, что у Вас есть это в заголовочном файле.
template< class T >
inline void F( T* t )
{
// ... some code
}
Если Вы будете использовать F для горстки типов, то каждая единица перевода генерирует копии функции для типов, которые это использует.
Если Вы заменяете его просто объявлением:
template< class T > void F( T* t );
затем можно генерировать просто instantations, в котором Вы нуждаетесь в отдельном исходном файле:
template< class T > void F( T* t )
{
// definition
}
template void F< int >( int* );
template void F< char >( char* );
template void F< MyType >( MyType* );
Конечно, Вы теперь имеете к руководству, справляются, для каких типов Вы нуждаетесь в шаблонном инстанцировании.