加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

如安在SQL中替代左毗连

发布时间:2021-04-01 03:51:12 所属栏目:编程 来源:网络整理
导读:任何人都可以汇报我如安在不行使左毗连的环境下编写等效的左毗连. Select * from a left join b on a.name = b.name. 办理要领 请记着,SQL的外毗连是一种相关连系,它专门用于投影空值.假如你想停止行使null值(在我看来是一件功德),你应该停止行使外毗连.请注

任何人都可以汇报我如安在不行使左毗连的环境下编写等效的左毗连.

Select * from a left join b on a.name = b.name.

办理要领

请记着,SQL的外毗连是一种相关连系,它专门用于投影空值.假如你想停止行使null值(在我看来是一件功德),你应该停止行使外毗连.请留意,当代相关说话完全没有行使null和outer毗连的观念.

这个外毗连:

SELECT DISTINCT T1.id,T1.value,T2.other_value
  FROM T1
       LEFT OUTER JOIN T2
          ON T1.id = T2.id;

…在语义上等效于此SQL代码:

SELECT T1.id,T2.other_value
  FROM T1
       INNER JOIN T2
          ON T1.id = T2.id
UNION
SELECT T1.id,NULL
  FROM T1
 WHERE NOT EXISTS (
                   SELECT * 
                     FROM T2
                    WHERE T1.id = T2.id
                  );

第二个查询也许看起来很长,但这只是由于SQL的计划/演变方法.以上只是一个天然的连系,一个同盟和一个半同盟.可是,SQL没有semijoin运算符,假如您的产物没有实现尺度SQL的NATURAL JOIN语法,则要求您在SELECT子句中指定列列表并编写JOIN子句,这会导致许多代码表达很是简朴的内容.

因此,您可以编写代码,譬喻上面的第二个查询,但行使现实的默认值而不是空值.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读