2012-08-27 102 views
0

我不知道如何做到这一点。 我有三个表成员表成员238871工作 表7713项 贸易表,并与231142项一桌减去另一个

,如果我拿238871件减什么是在贸易表我得到的7729.在工作表中的差异我有7713个条目,因此在成员表中有16个下落不明。所有的交易都在工作和成员表中。但在会员那里有一个不在工作和贸易中的16人。

如何定义这16位成员? 感谢

回答

2

其实,一个left join给你一切jobsortedusers。然后在members中的所有内容也在jobsortedusers之内。

这听起来像你要么要扭转你的左外连接的顺序,而是执行此操作:

select * 
    from membership.members as mm 
    left outer join jobsorted.jobsortedusers as js 
    on mm.memberid = js.memberid 

这让你在members一切,然后在jobsortedusers一切也members。正如你所说的,每个用户也是一个成员,这个查询会返回你的一切。

我强烈推荐阅读this, which explains joins very well


要回答你的新问题,你想要的一切,其中jobsortedusers ID为空,即

select mm.* -- every other column will be null 
    from membership.members as mm 
    left outer join jobsorted.jobsortedusers as js 
    on mm.memberid = js.memberid 
where js.memberid is null 

我不知道该怎么上,但为了得到一切,这是不是在加入trade无论是这张桌子还是你的用户桌子,你需要这样的东西:

select mm.* -- every other column will be null 
    from membership.members as mm 
    left outer join jobsorted.jobsortedusers as js 
    on mm.memberid = js.memberid 
    left outer join trade t 
    on mm.memberid = t.memberid 
where js.memberid is null 
    and t.memberid is null 
+0

第二个查询给我的16个未记帐的成员,正是我所需要的,谢谢 –