symfony Query builder -- Inner join трёх таблиц (пример)
Primary tabs
Пример создания внутреннего объединения трёх таблиц с использованием QueryBuilder-а.
Решает вопрос поиска продуктов, у которых обязательно есть фото, относящихся к определённой категории:
$products = $this->getEntityManager() ->createQueryBuilder() ->select('p') ->from(Product::class, 'p') ->innerJoin(ProductPhoto::class, 'pp', 'with', 'p.id = pp.product') ->innerJoin(CategoryProduct::class, 'cp', 'with', 'p.id = cp.product') ->where('cp.category = '.$category->getId()) ->orderBy('p.id', 'ASC') ->getQuery() ->getResult();
В запросе используются 3 таблицы: product, category_product и product_photo.
В Symfony доступ к ним осуществляется через классы сущностей, соответствующих таблицам в БД: Product, CategoryProduct и ProductPhoto.
Источник
- Log in to post comments
- 10848 reads
vedro-compota
Fri, 01/12/2018 - 13:43
Permalink
после переноса по-идее
после переноса по-идее достаточно одного таб-а
_____________
матфак вгу и остальная классика =)
vedro-compota
Fri, 01/12/2018 - 13:59
Permalink
по-хорошему перед кодом надо
по-хорошему перед кодом надо отдельно указывать и имена таблиц, которые соединяются. Начинающему это может быть не очевидно.
_____________
матфак вгу и остальная классика =)