0

我可以通过这个 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(老师)

我想从属于“学生”或“老师”的用户表中选择列表


我想要的是属于学生的用户名列表。

身份证 | 姓名 | 性 1 | 鲍勃 |1 3 | 肯|1

4

2 回答 2

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 。

于 2013-04-23T08:03:07.753 回答
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
于 2013-04-23T08:03:16.760 回答