半连接被认为是左连接还是右连接?

时间:2016-03-06 20:47:23

标签: sql

这是一个非常基本的问题,但是半连接与左连接或右连接相同?

那就是:当有人说

  

让我们按国家/地区显示所有用户。我们需要进行半连接,因为有些国家没有用户

他是指仅做左派还是右派?

1 个答案:

答案 0 :(得分:7)

半连接是一个表中元组的集合,与第二个的连接键匹配。与内部和外部联接不同,半联接不能乘以表中的行数:包含或不包括元组。

根据定义,当具有匹配元组的表是第一个表时,它被称为左半连接。如果它是第二个,那么它将是一个正确的半连接。这种用法完全类似于左外连接和右外连接。但不同之处在于,为半连接而不是外连接过滤行(元组)。关于代数关系的Wikipedia文章有很好的例证。

就个人而言,我没有发现基于集合的描述特别有用。左半连接相当于SQL中的in查询:

select t.*
from t
where t.key in (select u.key from u);