在SQL中,如果我们只想找到交集,我们是否总是可以将内部联接语句编写为主查询和子查询,反之亦然?在SQL中,如果我们只想找到交集,我们是否可以总是将内部联接语句编写为主查询和子查询?
例如,
select * from gifts g where g.giftID in (select giftID from sentGifts);
可以做一个连接,并显示在sentGifts表送礼物,但它无法显示sentTime因为那是子查询中。但是,如果我们所关心的只是找到交叉点,而不关心正在显示的内容,那么我们总是可以将其中一个转换为另一个?
你的意思是这样的:select * from gifts g其中g.id in(从sentGifts s中选择giftId,其中s.Id = g.Id和s.Id2 = g.Id2) – Oded 2010-04-25 10:38:40
这是行不通的。我假设两个表都有多部分键的情况。 – Blorgbeard 2010-04-25 10:41:11
为了清晰起见编辑 – Blorgbeard 2010-04-25 10:44:13