我在 Symfony2 项目中遇到了 DQL 问题。我已经定义了 3 个实体:
- 一个名为 Category 的实体,有两个字段:id 和 slug
- 一个名为 SubCategory 的实体,有两个字段:id 和 slug
- 一个名为 CategorySubCategories 的实体,具有两个字段:类别和子类别
我需要获取给定类别(slug)的子类别。我用下一个 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);
无论如何用 INNER JOINS 构建这个 DQL 吗?
在 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 吗?