我有三张桌子:会员、会议和Member_Meeting。名字本身就应该泄露它们所包含的内容。会员为注册会员,会议为过去和将来的会议,Member_Meeting为已经或将要出席会议的成员。我可以使用内部联接来获取两个表中的数据,左联接可以在两个表中都获取数据,但也可以使用右边联接获取数据,但也可以在右边和(完全)外部联接中获取数据,以从右和左获得数据。然而,我需要的是只存在于成员中而不存在于Member_Meeting中的数据。换句话说,我需要让所有存在但从未参加过会议的成员参加会议,因此在Member_Meeting中没有记录。我所需要的有点像左连接或右连接,但没有表的共同点。
发布于 2014-04-16 02:23:27
这样做有两种方法。第一种方法是使用NOT IN()执行子查询
SELECT * FROM Member WHERE ID NOT IN(SELECT DISTINCT MemebrID FROM Member_Meeting)另一个选项是执行一个LEFT JOIN,然后对空值进行筛选。
SELECT Member.* FROM Member
LEFT JOIN Member_Meeting ON Member.ID = Member_Meeting.MemberID
WHERE Member_Meeting.MemberID IS NULLhttps://stackoverflow.com/questions/23097844
复制相似问题