SQL:内部联接的联接

SQL:内部联接的联接,sql,join,Sql,Join,我是SQL的初学者。 我有3个表(A、B和C),我只想提取A中属于B或C的部分 以下是我想提取的图像(红色): 我知道A和C之间的交点是通过以下方式获得的: A inner join C on #the keys 在A和B之间: A inner join B on #the keys 我的问题是:如何连接/添加这两个内部连接?我终于找到了如何做到这一点。。。而且非常简单和快速: SELECT ... FROM A INNER JOIN B ON .... UNION SELECT ..

我是SQL的初学者。 我有3个表(A、B和C),我只想提取A中属于B或C的部分

以下是我想提取的图像(红色):

我知道A和C之间的交点是通过以下方式获得的:

A inner join C on #the keys
在A和B之间:

A inner join B on #the keys

我的问题是:如何连接/添加这两个内部连接?

我终于找到了如何做到这一点。。。而且非常简单和快速:

SELECT ... FROM A
INNER JOIN B ON ....

UNION

SELECT ... FROM A 
INNER JOIN C ON ....

我会使用
存在

select . . . 
from a
where exists (select 1 from b where b.? = a.?) or
      exists (select 1 from c where b.? = a.?);
如果需要所有表中的列,请使用
left join
并使用
where
子句:

select . . .
from a left join
     b
     on . . . left join
     c
     on . . .
where c.? is not null or b.? is not null;

你明白了。顺便说一句,我想你的照片不对。如果要查找的记录是A的一部分和B“或”C的一部分,则圆B和C应该没有交点。你画的记录是A的一部分,B和C的一部分。如果你画得正确,你会清楚地看到你的最终联合结果。

可能重复的
。。。从a开始加入b。。。在…上连接c
?在…上连接B。。。加入C上。。。不会在A和C之间相交only@LCMa . . . 样本数据和期望的结果比理论上的东西更有意义。有很多方法可以做到这一点,这取决于你真正想做什么。那张图片没有传达任何信息。它与连接有什么关系?其余情况也不清楚。请给你的实际问题一个答案。这并不能回答问题。也没有理由说图片不正确;假设桌子是套装而不是包,这是对英语的合理解释。虽然问题还不清楚。对于维恩图,您的“应该没有交叉点”是错误的。