2014-01-19 55 views
-1

我试图让我的数据库中的所有用户都有或没有友谊的请求,但如果他们确实有友情的请求,我不想让那些特定的用户是友谊请求的一部分。 我的存储过程名为getNotFriendsOfUser。 这是查询:左加入where子句不起作用

select * from user a left join request b on a.idPerson = b.idRequester 
inner join persona c on a.idPerson = c.idPerson 
where b.idRequester <> @idPerson 

上有我的数据库没有友好关系,有超过10个用户进行测试,但我不觉得为什么这个查询总是返回空值的集合。

但这BTW得出的结果:

select * from user a left join request b on a.idPerson = b.idRequester 
    inner join persona c on a.idPerson = c.idPerson 

帮助?

+5

发布SQLFiddle与数据 –

+0

我认为这是'@ idPerson',但没有信息,我不知道。 –

+0

你是内心加入角色,你确定这是人口稠密? – TomT

回答

1

然后使用您的左连接的子查询或派生表来查找要忽略的结果并将它们排除在主键上。