簡體   English   中英

SQL內部聯接和自然聯接

[英]SQL Inner Join and Natural 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行?

我再次對圖片的糟糕設置表示歉意,但對不起,我希望有人可以向我解釋這一非常簡單的任務的結果。

提前致謝

親切的問候

要了解連接的不同類型,請看以下內容: 在此處輸入圖片說明

如您所見,在您的情況下,內部匹配這兩個表共有的元素:

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
Select * From r INNER JOIN s ON r.F=s.F

結果將是

E  F  F  G
10 5  5 30
20 15 15 20

INNER JOIN關鍵字選擇兩個表中具有匹配值的記錄。 這就是為什么刪除12,即沒有公共列的原因。 現在的結果

Select E, G From r NATURAL JOIN s

E  G
10 30
20 20

當您在選擇上使用*時,您將得到

F  E   G
5  10 30
15 20 20

在自然連接上使用*時,它將擴展為以下列列表

  • 所有常用欄
  • 第一(左)表中的每一列都不是公共列
  • 第二個(右)表中的每一列都不是公共列

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM