sql >> Database >  >> RDS >> Mysql

SQL / Doctrine:probleem met links samenvoegen

Uw voorwaarden moeten deel uitmaken van de LEFT JOIN ... ON-clausule.

$q = $this->createQuery('c')
    ->leftJoin('c.stJob j WITH j.expires_at > ? AND j.is_activated = 1 AND j.is_public = 1', date('Y-m-d h:i:s', time()))
    ->addOrderBy('c.name');

Voorwaarden in de ON zetten clausule (in tegenstelling tot de WHERE ) geeft aan dat ze specifiek van toepassing zijn op de JOIN . Als er geen rijen aan die voorwaarden voldoen, is er geen join - en dat is precies wat je in dit geval wilt. Ze in de WHERE . plaatsen geeft aan dat het resultaat rijen moeten aan die voorwaarden voldoen. En natuurlijk, als er geen deelname was, kun je iedere . niet bevredigen voorwaarden over de j tafel.



  1. Mysql decimaal:vloer in plaats van rond

  2. Hoe datumgaten in MySQL op te vullen?

  3. Hoe een niet-null-beperking toe te voegen aan een bestaande kolom in MySQL

  4. Afkappen met voorwaarde