【发布时间】:2020-03-21 08:33:08
【问题描述】:
我几乎每天都在使用 DB/SQL,而且我使用 sql 的次数越多,我就越认为没有理由使用右连接或完全外连接。
假设我们有两个表:table1 和 table2。要么我想接收 table1 中行的附加信息,所以我可以在 table2 上使用内部连接,如果我想在没有匹配的情况下保留原始行,那么我使用左连接:
如果我必须向表 2 添加其他信息,我可以执行相同的操作并将表 2 连接到表上。所以我看不出为什么我应该使用正确的连接。是否有任何用例不能使用左连接进行右连接?
我还想知道我是否需要完整的外部联接。为什么要连接两个表并保留两个表不匹配的行?我们也可以通过使用两个左连接来实现这一点。
【问题讨论】:
-
右外连接在我看来完全是多余的。您始终可以使用左外连接编写相同的查询,哇,突然查询变得可读了 :-) 我个人的建议是从不使用右外连接。
-
完全外连接很少需要。但在那些是适当方法的极少数情况下,应该使用它们。用两个方向的左外连接和
UNION来模拟它们来组合结果有点尴尬,而且可读性和可维护性要差得多。