微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL – 使用UNION加入?? UNION使用JOIN?

在我的一次采访中我被问到了这个问题.
你能用UNION关键字做JOIN吗?
你能用JOIN关键字做UNION吗?

那是 –
1.我应该在不使用JOIN关键字的情况下获得与JOIN相同的输出,但是使用UNION关键字?
2.我应该在不使用UNION关键字的情况下获得与UNION相同的输出,但是使用JOIN关键字?

如果可能,你能给我一个如何做到这一点的例子吗?

解决方法

面试是您设置商品的框架.记住:不要回答问题;)

想想一个新闻发布会:发言人并不打算回答来自journos的困难问题.相反,他们正在寻找他们已经有答案的问题,作为他们想要发布的信息(而不是更多!)

如果我在一次采访中遇到这个问题,我会用它来证明我对关系代数的了解,因为这就是我在采访中所做的事情.我对“在这里谈论关系代数”问题保持警惕,这就是它.

简而言之,JOIN是逻辑AND的对应物,而UNION是逻辑OR的对应物.因此,使用约定逻辑的类似问题可能是,“你能用AND做OR吗?”和“你能做或使用AND吗?”答案取决于您可以使用的其他内容,例如:不可能派上用场;)

我也很想讨论原始运算符集之间的差异,计算完整性所需的运算符集以及实际用途所需的运算符和短序集.

试图直接回答这个问题会引发更多问题. JOIN意味着关系代数中的“自然连接”,而在sql中它意味着INNER JOIN.如果问题与sql有关,那么您是否必须回答所有JOIN类型? UNION JOIN怎么样?

一个例子,sql的外连接是着名的UNION. Chris Date表达的比我希望的更好:

Outer join is expressly designed to
produce nulls in its result and should
therefore be avoided,in general.
Relationally speaking,it’s a kind of
shotgun marriage: It forces tables
into a kind of union—yes,I do mean
union,not join—even when the tables
in question fail to conform to the
usual requirements for union (see
Chapter 6). It does this,in effect,
by padding one or both of the tables
with nulls before doing the union,
thereby making them conform to those
usual requirements after all. But
there’s no reason why that padding
shouldn’t be done with proper values
instead of nulls

SQL and Relational Theory,1st Edition by C.J. Date

如果“我讨厌空白”是你想在面试中得到的东西,这将是一个很好的讨论点!

这些只是想到的一些想法.关键的一点是,通过询问这些问题,面试官会为您提供一个分支机构.你会怎么做?

原文地址:https://www.jb51.cc/mssql/77578.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐