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

Не може да се конвертира MySql заявка с помощта на doctrine DQL или QueryBuilder

Това е една от онези ситуации, при които Doctrine ORM вероятно ще ви причини повече проблеми, отколкото ще реши. Бихте могли:

  1. Използвайте собствена заявка и съответния ResultSetMapping настройка
  2. Рефакторинг на вашата SQL заявка в нещо, което Doctrine може да обработва в DQL. Разглеждайки заявката, която имате, има няколко различни начина, по които можете да го направите (напр. третиране на подзаявката като временна таблица в частта FROM / JOIN), но не виждам начин, който Doctrine DQL би позволил
  3. Просто изберете чист SQL, като използвате Doctrine DBAL. Изглежда, че използвате $this->_em което ме кара да мисля, че сте в EntityRepository , така че можете да направите:$this->_em->getConnection() за да получите DBAL връзка тогава просто направете $conn->query() . Очевидно по този начин губите предимствата на ORM (агностик на база данни и т.н.), но можете да мислите за ORM като за данък, изпълняващ сложни заявки.

Разбирам, че нито едно от тях не е идеално, но от опит понякога е по-добре да избутате Doctrine ORM от пътя, за да постигнете това, от което се нуждаете.




  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 таблица с помощта на масиви с PDO

  2. Codeigniter ActiveRecord:присъединяване обратно

  3. Как да вмъкнете огромен Pandas Dataframe в MySQL таблица с паралелно вмъкване?

  4. Как да извикам моите C++ двоични файлове чрез CGI интерфейса?

  5. Остави Присъединяване към най-новия запис