以左联接和对象为结果的Symfony2学说查询

泰坦鸟

我是该学说的新手,现在我想做以下事情。

表“ user_friend”:

id | user_id | friend_user_id

该表包含联系人列表的条目。

现在我想获得条目的结果,例如:

SELECT * FROM user_friend a 
    LEFT JOIN user_friend b
    ON (b.user_id = 10 AND b.friend_user_id = a.user_id)
WHERE b IS NULL

该查询将在那里从联系人列表中获取另一侧朋友未确认的条目(WHERE b IS NULL,他尚未将“ me”添加到他的联系人列表中)。我希望你理解我在寻找什么。

我不确定WHERE b IS NULL是否正确,或者如何在一个查询中检查是否已经有另一个条目(表中已确认的朋友),对此的正确方法是什么?我的想法就像是左联接,您可以在上面看到。

其次,我不知道如何使用Symfony2中的学说来做到这一点。现在我知道EntityManager和-> findBy方法。这个方法返回对象,很好。

我尝试了$ em-> createQueryBuilder()一点,但是在那儿的leftJoin无法达到我的目标。如果是左联接,是否必须使用createQueryBuilder还是可以通过EntityManager进行?让我们也问:哪种方法更好?第三,我不知道如何从createQueryBuilder获取实体对象。-> getQuery()-> getResult()。我需要水合结果吗?

对此的一些示例代码将非常不错!

谢谢。晚上好。

模糊树

在SQL你会在WHERE语句来定义列的名称,以便代替b IS NULL它需要b.user_id IS NULL

SELECT * FROM user_friend a 
    LEFT JOIN user_friend b
    ON (b.user_id = 10 AND b.friend_user_id = a.user_id)
WHERE b.user_id IS NULL

使用以下方法编写相同查询的另一种方法 NOT EXISTS

SELECT * FROM user_friend a 
WHERE NOT EXISTS (
    SELECT * FROM user_friend b
    WHERE b.user_id = 10
    AND b.friend_user_id = a.user_id
)

使用DQL中的相同查询 NOT EXISTS

$qb->select("a") 
   ->from("MyBundle\Entity\UserFriend a")
   ->where('NOT EXISTS (
        SELECT b
        FROM MyBundle\Entity\UserFriend b 
        WHERE b.user_id = :user_id
        AND b.friend_user_id = a.user_id   
   )')
   ->setParameter('user_id', 10);

在您的DQL中,请确保使用实体字段名称,该名称不一定与数据库列名称相同(即,用户ID可能存储在名为“ user_id”的列中,但实体的字段名称可能只是“ id”或“ userId”)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Symfony 2学说左联接

来自分类Dev

从symfony2学说的结果中获取对象的价值

来自分类Dev

Symfony2创建左联接

来自分类Dev

Symfony2学说关联结果

来自分类Dev

Symfony2学说关联结果

来自分类Dev

Symfony2学说创建查询

来自分类Dev

Symfony2联接查询

来自分类Dev

symfony2:带有学说的本机查询

来自分类Dev

实体和MySQL中的学说数组类型(Symfony2)

来自分类Dev

左联接查询返回不良结果

来自分类Dev

学说多对多左联接

来自分类Dev

Symfony2学说查询生成器作为FROM子句中的子查询

来自分类Dev

PostgreSQL左联接查询对象数组聚合

来自分类Dev

左联接和通配符不返回结果?

来自分类Dev

symfony2学说oneone完整示例

来自分类Dev

ManyToOne作为ID的学说(symfony2)

来自分类Dev

Symfony2学说抛出NonUniqueResultException

来自分类Dev

使用YAML的Symfony2学说索引

来自分类Dev

Symfony2学说实体未水合

来自分类Dev

Symfony2学说Querybuilder全选

来自分类Dev

Symfony2学说manyToOne EntityNotFoundException

来自分类Dev

Symfony2与学说:findBy的嵌套条件

来自分类Dev

Symfony2学说NotIn问题

来自分类Dev

Symfony2:学说MySql数学函数

来自分类Dev

SQL SERVER:左联接和子查询

来自分类Dev

SQL SERVER:左联接和子查询

来自分类Dev

如何在Symfony2中使用APC案例学说准备查询

来自分类Dev

如何在symfony2中使用动态变量系统地过滤学说查询

来自分类Dev

带有时间的symfony2学说缓存查询