Потому и говорю «учи SQL». Ты не совсем понимаешь принципа работы базы данных. Каждая выбранная строка должна соответствовать всем указанным условиям. Возьми из всех своих строк только одну. Будет ли в ней name равняться сразу и 'shape' и 'processing_edge'? Это физически не возможно. У тебя должно быть примерно так: WHERE (
( modResource
.deleted
= 0 AND modResource
.hidemenu
= 0 AND modResource
.published
= 1 )
AND modResource
.parent
IN (156,178,179,180,181,182,183,184,185,186,187,188,189,190,191)
AND (
( TemplateVar
.name
= 'shape' AND TVResources
.value
= 'rectangle' ) OR ( TemplateVar
.name
= 'processing_edge' AND TVResources
.value
= '10' )
)
)