sql >> Databáze >  >> RDS >> Mysql

Dotaz SQL/Doctrine k nalezení dat s více podmínkami s přidružením Many to Many

Chcete-li získat podniky, které existují v obou kategoriích, napište svůj tvůrce dotazů následovně, předpokládám, že vaše entity jsou mapovány se správným vztahem mnoho k mnoha

$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();

Pro informaci viz další odpověď zde



  1. Laravel 4 neumí spouštět celé RAW dotazy

  2. Jak mohu změnit svou výchozí databázi na serveru SQL Server bez použití MS SQL Server Management Studio?

  3. Jak zobrazit celý dotaz ze SHOW PROCESSLIST

  4. Jak vytvořit 'dvoustranný' jedinečný index na dvou polích?