Mysql
 sql >> база данни >  >> RDS >> Mysql

Sql/Doctrine заявка за намиране на данни с множество условия с много към много асоциации

За да получите бизнесите, които съществуват и в двете категории, напишете своя конструктор на заявки, както следва, предполагам, че вашите субекти са картографирани с подходяща връзка много към много

$repo = $this->getDoctrine()->getRepository('YourBundle:Business');

$repo = $this->createQueryBuilder('b')
    ->addSelect('COUNT(DISTINCT  c.id) AS total_categories')
    ->innerJoin('b.categories', 'c');

$categoryIds = array(1,2);

$repo->add('where', $qb->expr()->in('c', $categoryIds))
    ->groupBy('b.id')
    ->having('total_categories = '.count($categoryIds))
    ->getQuery()
    ->getResult();

За справка вижте друг отговор тук



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да избера реда с най-висок идентификатор в MySQL?

  2. Списъкът SELECT не е в клауза GROUP BY и съдържа неагрегирана колона .... несъвместима с sql_mode=only_full_group_by

  3. Печат на ранг от сума в PHP и MySQL в 1,1,3,4 и т.н. Ред

  4. Как да пропуснете ред при импортиране на лош дъмп на MySQL

  5. MySQL:Защо да посочвате ширината на дисплея, без да използвате Zerofill