外部连接在我看来有点令人困惑。
有没有人可以让我清楚地了解外部连接(右、左和完整)?
阅读关于The Code Project 的这篇原创文章会对您有很大帮助:SQL 连接的可视化表示。
我一直认为的方式是:
LEFT JOIN - keeps all rows selected on the left
RIGHT JOIN - keeps all rows selected on the right
FULL JOIN - keeps all rows selected on both sides
无需访问 Wikipedia 或绘制图表,即可轻松记住。
PS Death to Oracle + join 语法!
关于联接的维基百科文章应该对您有所帮助。
Oracle 外连接的特别之处在于旧的符号使用(+)
,但现在已经过时了。
我从来不喜欢@Pranay Rana 的回答中使用的那些经常看到的图片。它们显示集合操作但不显示连接。例如,顶部中间的图片是A union B
,左侧中间是A except B
(或者我认为A minus B
是 Oracle),依此类推。
还要考虑关系模型中不存在 null ,因此无论如何您都无法使用维恩图绘制它!;)
我认为如果不使用表,就无法绘制外连接的图片,例如这个。