通常,当我想检查相关表中是否存在某些内容时,我会离开加入表并检查是否收到了某些内容,例如假设我要选择所有角色而不连接到权限值2,查询看起来像这样:
SELECT r.* FROM roles r LEFT JOIN permissions p ON r.id = p.role_id AND p.value = 2 WHERE p.id IS NULL
现在我想在DQL中做类似的事情,但我不能让它工作,因为在JOIN中没有ON,不确定它是否可能但这是我现在得到的(显然这不起作用)
SELECT r FROM User\Role r LEFT JOIN r.permissions p WHERE p.value = 2 AND p IS NULL // This will not work