我知道内连接,全外连接,左(外)连接,右(外)连接和交叉连接的定义。但是什么时候应该使用这些?有人可以说出一些例子吗?
不要告诉我他们已经习惯了上课。 )
谢谢!
答案 0 :(得分:4)
请参阅:http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html
大多数加入只是管理各种数据集。
因此,何时使用它们取决于您想要的数据。
您何时想要使用交叉联接?说我有一张颜色表,尺寸表,我想卖出所有尺码的所有颜色的“衬衫”颜色和尺寸之间的交叉连接会给我所有颜色的所有颜色的所有衬衫。然后我可以用它来列出所有组合。
内部连接将是我想要显示所有蓝色衬衫所以我将衬衫加入到颜色为蓝色的衬衫。这将消除所有其他衬衫。
左连接可能是我已经销售各种颜色和尺寸的衬衫。但我可能还没有卖过XXL Red衬衫。但是我仍然希望在我的结果中看到它所以我离开加入大小颜色交叉加入我的销售表,以确保我得到红色XXL衬衫返回;因为我们没有任何销售,否则作为内部联接,我们会失去这种组合。
右连接与左边相同,它只管理连接表的ORDER。
我希望看到所有客户以及我们为衬衫运送产品的所有州。但也许客户只从我们这里买了裤子,我们还没有在阿拉斯加卖过任何衬衫。因此,使用完全外部连接,我们可以看到所有客户,即使他们没有买过衬衫,所有州,即使没有在那里出售衬衫。内部会消除记录,就像左或右连接一样。并且交叉加入会给我们不正确的结果,因为并非所有州都有销售。