查询以检索除另一个查询返回的用户之外的所有用户

时间:2016-05-11 07:38:19

标签: mysql sql spring-data

我必须通过Spring数据写一个查询到mySql数据库。 我有一个表User和一个表Fleet有很多关系,所以我有另一个表id_username和id_fleet。 现在我想知道我可能添加到舰队的所有用户,所以我需要除已经拥有指定车队的用户以外的所有用户。 我尝试在Mysql工作台中使用示例查询,如下所示:

SELECT username FROM dart.user where enabled=true NOT IN (Select id_username from dart.fleet_Has_User where dart.fleet_Has_User.id_fleet= '8' )

但它不会删除第二个查询的用户。你可以帮帮我吗 ?感谢

2 个答案:

答案 0 :(得分:0)

尝试使用NOT IN

SELECT username FROM dart.user 
where enabled=true 
and id_username NOT IN (Select id_username from dart.fleet_Has_User where dart.fleet_Has_User.id_fleet= '8' )
    ^^^^^^^^^^^
    yourIdusername col of dart.user table                    

答案 1 :(得分:0)

您也可以使用左连接。

SELECT username 
FROM dart.user u 
left join dart.fleet_Has_User fu
 on fu.user_id = u.user_id and
    fu.id_fleet= '8'
where U.enabled=true 
and fu.user_id is null