2017-06-14 13 views
1

私のテーマが私のブログで何回使用されたのかを数えたいと思います。DQLクエリ - 右結合

ブログ投稿(フランス語の記事)は、1つ以上のテーマを使用できます。

  • themes_articles(id_theme、id_article) そして:

  • テーマ(id_theme、nom_theme)

  • 記事(ブログ記事)(

    は、だから私はテーブル(多対多)を持っていますid_article、description ...)

SQLでは、私は:

SELECT T.id,nom_theme,count(A.themes_id) from themes_articles A right join themes T on T.id=A.themes_id group by nom_theme 

これはうまくいきますが、DQLで右ジョインを使用したい場合は少し難しいです。私は左の結合を使用するために私の2つのテーブルを切り替えましたが、私はここで私の関係テーブル(themes_articles)をどのように使うことができるのか分かりません。

私はこのような何か試してみました:

$query = $this->createQueryBuilder('') 
->select(array('T.id', 'nomTheme', 'count(A.themes_id) as nombre')) 
->from('themes', 'T') 
->leftJoin('themes_articles', 'A', 'WITH', 'T.id= A.themes_id') 
->groupBy('nom_theme'); 
    return $query->getQuery()->getResult(); 

をしかし、それは動作しません。

[Semantical Error] line 0, col 93 near 'themes_articles': Error: Class 'themes_articles' is not defined. 

DQLリクエストでSQLリクエストを変換するにはどうすればよいですか?

ありがとうございました。

+0

それは "動作しない" とは何を意味するのでしょうか?あなたはエラーを取得しますか? –

+0

こんにちは。 はい、私はこのエラーがあります: [意味的なエラー]行0、列93の近くに 'themes_articles':エラー:クラス 'themes_articles'が定義されていません。 – devicz

答えて

0

は、これを変更しよう:

->leftJoin('themes_articles', 'A', 'WITH', 'T.id= A.themes_id') 

これに:

->leftJoin('YourBundle:themes_articles', 'A', 'WITH', 'T.id= A.themes_id') 
+0

こんにちは、 同じこと、 [意味的なエラー]行0、列93の 'BlogBu​​ndle:themes_articles'の付近:エラー: 'BlogBu​​ndle \ Entity \ themes_articles'クラスが定義されていません。 – devicz