Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQL / Doctrine :Lewy problem z dołączaniem

Twoje warunki powinny być częścią klauzuli LEFT JOIN ... ON.

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

Umieszczanie warunków w ON klauzula (w przeciwieństwie do WHERE ) wskazuje, że dotyczą one konkretnie JOIN . Jeśli żadne wiersze nie spełniają tych warunków, nie ma sprzężenia — i właśnie tego chcesz w tym przypadku. Umieszczanie ich w WHERE wskazuje, że wynik wiersze muszą spełniać te warunki. I oczywiście, jeśli nie było przyłączenia, nie możesz spełnić żadnego warunki dotyczące j tabela.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wstawić tablicę json do bazy danych mysql?

  2. Możliwe zwracane wartości dla mysql_affected_rows()

  3. Jak zwrócić lewą lub prawą część ciągu w MySQL

  4. Menu rozwijane PHP, z których każdy jest niezawodny

  5. Używanie unii i kolejności według klauzuli w mysql