我有2个表与多对多关系=>用户,角色。
我需要找到所有不属于任何角色的用户。
在SQL中可以完成:
SELECT *
FROM `user`
WHERE `id` NOT
IN (
SELECT `user_Id`
FROM user_role
)
user_role
是来自user
和role
的多对多关系的加入表。
如何使用DQL
获得相同的结果?
更新
user_role
表是来自学说的自动映射,如果我尝试使用它,我会得到“未找到实体”
要求更好:
如何使用CreateQueryBuilder
执行相同的结果?
我无法在我的实体中使用user_role表,因为它是使用多对多关系注释自动生成的(或者我可以使用它吗?)。
答案 0 :(得分:0)
你的方式应该能得到你想要的结果或者你可以加入像这样的
SELECT *
FROM user u LEFT OUTER JOIN user_role ur
ON u.id = ur.user_Id
WHERE ur.user_Id IS NULL
答案 1 :(得分:0)
这应该有效:
SELECT u
FROM user u
LEFT JOIN u.roles r
WHERE r IS NULL