Постраничная навигация. Как она устроена?
Делаете запрос товаров с лимитом. Получаете N товаров. Берете их ID, делаете запрос свойств.
Свойства по сохраненному в них ID товара рассовываете в ранее полученные сущности товаров. Возвращаете эти сущности.
По-другому никак, только 2 запроса с объединением в скрипте. Если посмотрите AR в Yii, то там при запросе связанных сущностей они вытаскиваются отдельными запросами по ID родительской сущности. Там есть специальный параметр together, который позволяет вам принудительно вытащить связанные сущности через JOIN. В этом случае, об этом гласит сама документация Yii, не можете полагаться на limit в выборке, потому как limit будет применен к результирующему набору данных, который по размеру будет равен исходному только если связь была один-к-одному.
Я сайт как-то видел название какое-то простое типа paginator.ru но как сейчас не ищу не могу его найти (вот что значит программисты без SEOшников делали ))) может кто подскажет?