我可以通过此sql选择“sex = 2”的用户
createQueryBuilder('s')
->where('s.sex = 2');
如何选择属于A组的用户?
我的桌子在下面。
我的用户表。
ID | name |sex
1 | bob |1
2 | kayo |2
3 | ken |1
我的fos_group表
ID | name
1 | student
2 | teacher
我的fos_user_user_group
user_id | group_id
1 | 1
2 | 2
3 | 1
意味着
Bob和Ken属于group_1(学生)
Kayo属于group_2(老师)
我想从用户表中选择属于“学生”或“老师”的列表
我想要的是属于学生的用户名列表。
ID |名字|性别 1 |鲍勃| 1 3 |肯| 1
答案 0 :(得分:1)
您需要先进行连接,然后对关联属性进行过滤。
$entityRepository
->createQueryBuilder('s')
->join('s.groups', 'g') // Assuming the association on your user entity is 'groups'
->where('g.name = :group')->setParameter('group', 'student');
有关与DQL关联的过滤示例,请参阅http://docs.doctrine-project.org/en/2.0.x/reference/dql-doctrine-query-language.html#joins。
答案 1 :(得分:0)
SELECT
g.name AS GroupName,
GROUP_CONCAT(u.name) AS Users
FROM fos_group AS g
INNER JOIN fos_user_user_group AS ug ON ug.group_id = g.ID
INNER JOIN user AS u ON u.id = ug.user_id
GROUP BY g.name
输出:
GroupName | Users
---------------------------
student | bob , ken
teacher | kayo