sql >> データベース >  >> RDS >> Mysql

doctrineDQLまたはQueryBuilderを使用してMySqlクエリを変換できません

    これは、DoctrineORMが解決するよりも多くの問題を引き起こす可能性が高い状況の1つです。次のことができます:

    1. ネイティブクエリを使用する および関連するResultSetMapping セットアップ
    2. SQLクエリをDoctrineがDQLで処理できるものにリファクタリングします。クエリを見ると、さまざまな方法で実行できます(たとえば、サブクエリをFROM / JOIN部分の一時テーブルとして扱う)が、DoctrineDQLで許可される方法がわかりません
    3. >
    4. DoctrineDBALを使用してストレートSQLを実行するだけです。 $this->_emを使用しているようです これにより、あなたはEntityRepositoryにいると思います 、次のように実行できます:$this->_em->getConnection() を取得するにはDBAL接続 次に、$conn->query()を実行します。 。明らかに、この方法ではORM(データベースにとらわれないなど)の利点が失われますが、ORMは複雑なクエリを実行する税金があると考えることができます。

    これらはどれも理想的ではないことを理解していますが、経験から、必要なことを達成するためにDoctrineORMを邪魔にならないようにプッシュする方がよい場合があります。




    1. MariaDBでのWEEKOFYEAR()のしくみ

    2. Entity Framework EF4.1 - コンテナー内にストアド プロシージャが見つかりませんでした

    3. SQL Server(T-SQL)のデータベースメールアカウントのリストを取得する

    4. Oracleでdistinctとsumの両方を一緒に使用する方法は?