Symfony2 プロジェクトの DQL に問題があります。3 つのエンティティを定義しました。
- id と slug の 2 つのフィールドを持つ Category という名前のエンティティ
- id と slug の 2 つのフィールドを持つ SubCategory という名前のエンティティ
- カテゴリとサブカテゴリの 2 つのフィールドを持つ CategorySubCategories というエンティティ
指定されたカテゴリ (スラッグ) のサブカテゴリを取得する必要があります。次の DQL で取得しました:
$em ->createQuery('SELECT subcat FROM SubCategory subcat WHERE subcat.id IN
(SELECT IDENTITY(csc.subCategory) FROM CategorySubCategories csc WHERE csc.category IN
(SELECT cat FROM Category cat WHERE cat.slug = :category))')
->setParameter('category', $category);
この DQL を INNER JOINS で構築する方法はありますか?
たとえば、MysQL では次のようになります。
SELECT subcat.slug FROM Category cat INNER JOIN CategorySubCategories csc ON (cat.id = csc.category_id) INNER JOIN SubCategory subcat ON (csc.subcategory_id = subcat.id) WHERE cat.slug LIKE "$category"
DQL に変換する方法はありますか?