【发布时间】:2014-07-05 19:58:39
【问题描述】:
我正在尝试基于本机 sql 查询生成学说 2 DQL 查询:
SELECT f2.follower_id, u.*
FROM
users u,
user_followers f1
join user_followers f2 ON (f2.user_id = f1.follower_id AND f2.follower_id != f1.user_id )
WHERE f1.user_id = :user_id
AND u.id = f2.follower_id
AND f2.follower_id NOT IN (
SELECT follower_id
FROM user_followers
WHERE user_id = :user_id
)
GROUP BY 1
HAVING count(*) > 1
它基于具有自引用多对多关系的用户实体:
/**
* @ORM\ManyToMany(targetEntity="App\UserBundle\Entity\User", mappedBy="following")
*/
private $followers;
/**
* @ORM\ManyToMany(targetEntity="App\UserBundle\Entity\User", inversedBy="followers", cascade={"persist", "remove"})
* @ORM\JoinTable(name="user_followers",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="follower_id", referencedColumnName="id")}
* )
*/
private $following;
我完全被难住了,对如何实现它一无所知。 任何帮助将不胜感激。
【问题讨论】:
标签: mysql sql symfony doctrine-orm doctrine