【问题标题】:AND in LEFT JOIN with Doctrine并在 LEFT JOIN 中加入 Doctrine
【发布时间】:2021-09-21 21:54:24
【问题描述】:

如何像这样在 LEFT JOIN 中添加 AND SELECT * FROM photo LEFT JOIN like_photo lp on photo.id = lp.photo_id AND lp.user_id = 6 WHERE photo.is_public = 1?

`{`
    `return $this->createQueryBuilder('photo')`
        `->leftJoin("photo.likedPhotos", "lp", "photo.id = lp.Photo")`
        `->addSelect('lp')`
        `->where('photo.is_public = 1')`
        `->orderBy('photo.uploaded_at', 'DESC')`
        `->getQuery();`

}

【问题讨论】:

  • 在 lp 表上使用 WHERE user_id = 6 后我需要离开联接

标签: doctrine-orm doctrine


【解决方案1】:

尝试:

return $this->createQueryBuilder('photo')
        ->leftJoin("photo.likedPhotos", "lp", Join::WITH, "photo.id = lp.Photo AND lp.user_id = 6")
        ->addSelect('lp')
        ->where('photo.is_public = 1')
        ->orderBy('photo.uploaded_at', 'DESC')
        ->getQuery();

参见教义文档:https://www.doctrine-project.org/projects/doctrine-orm/en/2.9/reference/query-builder.html#line-number-5775ab09aefa638b14c776a733b4b61d2e324b74-43

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多