首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DQL选择联接

DQL选择联接
EN

Stack Overflow用户
提问于 2013-02-15 04:43:57
回答 2查看 354关注 0票数 0

我正在尝试进行DQL查询( symfony 2.2中的原理),但在这些实体上没有成功:

具有多个LessonContent的课程,每个are都链接到一个用户

我想检索用户的所有课程(应该是非常基础的……)。

代码语言:javascript
复制
SELECT l, lc FROM MyBundle:LessonContent lc 
JOIN lc.lesson l JOIN lc.modifiedBy u 
WHERE lc.creation=1 AND u.id = :userId

但这将返回LessonContent实体。如果我选择从课程中选择,我不能加入课程(这可能是我应该做的)。

有谁可以帮我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-16 04:16:26

事实证明,我需要有一个l.content*s*属性,以便能够从课程中进行选择,然后加入到其他课程中。

实体:

代码语言:javascript
复制
 /**
 * @var ArrayCollection $contentHistory
 * @ORM\OneToMany(targetEntity="AAA\CoreBundle\Entity\LessonContent", mappedBy="lesson", cascade={"persist", "remove"})
 * @ORM\OrderBy({"lastModified" = "DESC"})
 */
private $contentHistory;

查询:

代码语言:javascript
复制
SELECT l FROM AAACoreBundle:Lesson l JOIN l.contentHistory lc JOIN lc.modifiedBy u WHERE lc.creation=1 AND u.id = :userId GROUP BY l

有了它,它就像一个护身符一样工作!

票数 0
EN

Stack Overflow用户

发布于 2013-02-15 21:04:01

您查询的主表是doctrine作为主对象返回给您的内容,因此以下内容应该可以工作(假设l.content指向LessonContent关联):

代码语言:javascript
复制
SELECT l, lc FROM MyBundle:Lesson l
JOIN l.content lc
JOIN lc.modifiedBy u
WHERE lc.creation=1 AND u.id = :userId
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14883689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档