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
- 12178 reads
vedro-compota
Fri, 01/12/2018 - 13:43
Permalink
после переноса по-идее
после переноса по-идее достаточно одного таб-а
_____________
матфак вгу и остальная классика =)
vedro-compota
Fri, 01/12/2018 - 13:59
Permalink
по-хорошему перед кодом надо
по-хорошему перед кодом надо отдельно указывать и имена таблиц, которые соединяются. Начинающему это может быть не очевидно.
_____________
матфак вгу и остальная классика =)