学说多对多关系不在[可联合]

  • 本文关键字:关系 sql doctrine-orm dql
  • 更新时间 :
  • 英文 :


我有 2 个表,多对多关系 => 用户、角色。

我需要找到所有不具有任何角色的用户。

在SQL中可以完成:

SELECT *
FROM `user`
WHERE `id` NOT
IN (
    SELECT `user_Id`
    FROM user_role
)

user_role是来自userrole的多对多关系的连接表。

如何获得与DQL相同的结果?

更新

user_role表是来自教义的自动映射,如果我尝试使用它,我会得到"找不到实体"

问得更好:

我怎样才能用CreateQueryBuilder做同样的结果?

我无法在我的实体中使用 user_role 表,因为它是使用多对多关系注释自动生成的(或者我可以使用它吗?

这应该有效:

SELECT u
FROM user u
LEFT JOIN u.roles r
WHERE r IS NULL

你正在做的方式应该让你得到所需的结果 或者你可以做一个这样的加入

SELECT *
FROM user u LEFT OUTER JOIN user_role ur
ON u.id = ur.user_Id
WHERE ur.user_Id IS NULL

相关内容

  • 没有找到相关文章

最新更新