在NOT IN条件下包含省略记录
问题描述:
我有一个简单的Spring MVC数据项目设置,我试图选择Admin
表中尚不存在的用户列表。这里是我的仓库方法在NOT IN条件下包含省略记录
SELECT u FROM User u WHERE u.id NOT IN (SELECT a.id FROM Admin a WHERE a.id = :id)
List<User>findAvailableUsers(@Param("id") Long id)
这个效果很好,用户越多我添加到Admin
表,少我在我的<select>
标签
可当谈到编辑的现有用户Admin
表中,我的<select>
标记应包含要添加的所有可用用户以及当前映射的用户,但由于NOT IN
子句,从查询结果中省略了此单个用户。我可以修改此查询以包含所有可用的User
■添加包括当前存在标签的用户吗?
示例:用户2和用户4已添加到管理员表中。当我编辑该用户2在该管理表中的记录时,我仍然应该看到用户2作为可用选项,但它被省略了
答
类似这样?
SELECT u FROM User u WHERE u.id NOT IN (SELECT a.id FROM Admin a WHERE a.id = :id) OR u.id = :idToGet
当我编辑用户2在该管理表中的记录,我仍然应该看到用户2作为一个可用的选项,但它被省略....这里你什么意思是省略。 –
因为在用户2中不属于结果集的一部分,因为“NOT IN”条件,但我想在您的子查询中包含用户2 –
,而不仅仅是添加一个条件,即用户不应该等于user2 。 –