Mysql SQL内部联接和自然联接
所以我有一些关于我正在准备的旧试卷的具体问题,为实际考试做准备。这是一个非常基本的水平,但我只是需要帮助理解一些具体任务的结果 内部连接和自然连接: 形式,希望没问题。 我的第一个问题是关于1。声明内容如下:Mysql SQL内部联接和自然联接,mysql,join,Mysql,Join,所以我有一些关于我正在准备的旧试卷的具体问题,为实际考试做准备。这是一个非常基本的水平,但我只是需要帮助理解一些具体任务的结果 内部连接和自然连接: 形式,希望没问题。 我的第一个问题是关于1。声明内容如下: Select * From r INNER JOIN s ON r.F=s.F 为什么在进行内部联接时,E行中的12会被删除,而不是20 第二个问题涉及以下陈述: Select E, G From r NATURAL JOIN s; 再说一次,从E行中删除的是12,而不是20 我再次
Select * From r INNER JOIN s ON r.F=s.F
为什么在进行内部联接时,E行中的12会被删除,而不是20
第二个问题涉及以下陈述:
Select E, G From r NATURAL JOIN s;
再说一次,从E行中删除的是12,而不是20
我再次为图片的糟糕设置道歉,希望有人能向我解释这个非常简单的任务的结果
提前谢谢
要了解不同类型的联接,请查看以下内容: 如您所见,在您的案例中,您匹配两个表的共同元素的内部元素: r在F列中有[5,15,20] a在F列中有[5,15,20] 因此,值将为[5,15],正如您选择*,它将从两个表中选择所有列,但不重复名称和公共列
Select * From r INNER JOIN s ON r.F=s.F
结果表r:
E F G
10 5 20
20 15 30
结果将是
E F F G
10 5 5 30
20 15 15 20
INTERNAR JOIN关键字选择两个表中具有匹配值的记录。这就是为什么删除了12,即没有公共列。
现在我们来看看结果
Select E, G From r NATURAL JOIN s
是
当您使用*时,选择您得到的
F E G
5 10 30
15 20 20
在自然联接上使用*时,它将扩展到以下列列表
- 所有公共列
- 第一个(左)表中不是公共列的每一列
- 第二个(右)表中不是公共列的每一列
E G
10 30
20 20
F E G
5 10 30
15 20 20