Các kiểu tham gia trong SQL – Ví dụ tham gia bên trong VS tham gia bên ngoài – tham gia sql so với tham gia bên trong

Trong cơ sở dữ liệu quan hệ, tất cả thông tin chỉ nên xuất hiện một lần. Nhưng bạn có thể có thông tin được tách thành các bảng khác nhau có liên quan đến nhau. Và bạn có thể muốn kết hợp thông tin liên quan này lại với nhau để phân tích dữ liệu của nó – nghĩa là bạn có thể muốn kết hợp tất cả

Bạn đang xem: < font style = "vertical-align: inherit;"> sql tham gia so với tham gia bên trong

Trong cơ sở dữ liệu quan hệ, tất cả thông tin chỉ nên xuất hiện một lần. Nhưng bạn có thể có thông tin được tách thành các bảng khác nhau có liên quan đến nhau.

Và bạn có thể muốn tập hợp các thông tin liên quan này lại với nhau để phân tích dữ liệu của nó – nghĩa là bạn có thể muốn kết hợp tất cả dữ liệu (hoặc một số dữ liệu) lại với nhau. Trong trường hợp này, bạn sẽ cần sử dụng câu lệnh JOIN của SQL. Hãy cùng tìm hiểu cách hoạt động của nó.

JOIN trong SQL là gì?

Toán tử JOIN cho phép bạn kết hợp thông tin liên quan theo nhiều cách khác nhau, như tôi đã giải thích ngắn gọn ở trên. Có nhiều loại phép nối khác nhau, được chia thành hai loại chính – phép nối INNER và phép nối OUTER.

Sự khác biệt lớn nhất giữa phép nối INNER và phép nối OUTER là phép nối bên trong sẽ chỉ giữ lại thông tin từ cả hai bảng liên quan đến nhau (trong bảng kết quả). Mặt khác, Outer Join cũng sẽ giữ thông tin không liên quan đến bảng khác trong bảng kết quả.

Hãy xem chi tiết cách thức hoạt động của INNER JOIN và OUTER JOIN để hiểu rõ hơn về chúng. < / p>

Cách sử dụng INNER JOIN trong SQL

Tham gia bên trong sẽ chỉ giữ thông tin từ hai bảng đã tham gia có liên quan. Nếu bạn tưởng tượng hai bảng là một sơ đồ Venn , thì bảng kết quả từ INNER JOIN sẽ là phần được đánh dấu màu xanh lục bên dưới, nơi chúng chồng lên nhau:

Biểu diễn sơ đồ Venn cho Inner Join

Đây là cú pháp cho một phép nối bên trong:

  SELECT * FROM table1
    THAM GIA bảng2
    Mối quan hệ ON;  

Cú pháp INNER JOIN

Chúng ta sẽ xem cách thức hoạt động bên dưới với một ví dụ.

Cách sử dụng OUTER JOIN trong SQL

Nếu bạn muốn giữ tất cả dữ liệu chứ không chỉ dữ liệu liên quan đến nhau, bạn có thể sử dụng OUTER join.

Có ba loại Tham gia Bên ngoài: THAM GIA TRÁI , THAM GIA PHẢI THAM GIA ĐẦY ĐỦ . Sự khác biệt giữa chúng liên quan đến dữ liệu không liên quan mà chúng lưu giữ – nó có thể từ bảng đầu tiên, từ bảng thứ hai hoặc từ cả hai. Các ô không có dữ liệu để điền sẽ có giá trị là NULL .

Lưu ý: LEFT JOIN được triển khai hầu hết trên tất cả các phiên bản SQL. Nhưng đây không phải là trường hợp của RIGHT JOIN FULL JOIN , không được triển khai trong các phiên bản SQL khác nhau.

Hãy xem từng cách hoạt động riêng lẻ . Sau đó, chúng ta sẽ xem tất cả chúng hoạt động như thế nào với các ví dụ bên dưới.

Xem Thêm  Cách lặp qua từ điển bằng Python - vòng lặp for với từ điển python

LEFT OUTER JOIN trong SQL

LEFT OUTER JOIN, hoặc đơn giản là Nối trái, sẽ giữ lại dữ liệu không liên quan từ bảng bên trái (bảng đầu tiên).

Bạn có thể tưởng tượng điều đó với biểu đồ Venn có hai vòng tròn, với bảng kết quả là phần được đánh dấu màu xanh lục bao gồm cả hai phần chung / phần chồng chéo và phần còn lại của vòng tròn bên trái.

Biểu diễn sơ đồ venn cho phép nối bên ngoài bên trái

​​Cú pháp trông giống như bên dưới. Bạn sẽ thấy rằng nó tương tự như cú pháp Tham gia bên trong, nhưng với từ khóa LEFT được thêm vào.

  CHỌN cột
  TỪ bảng1
  LEFT JOIN table2
  ON quan hệ;  

LEFT OUTER JOIN

RIGHT OUTER JOIN trong SQL

RIGHT OUTER JOIN, hay đơn giản là Right Tham gia, sẽ giữ dữ liệu trong bảng thứ hai không liên quan đến bảng đầu tiên.

Bạn có thể hình dung nó với biểu đồ Venn có hai vòng tròn, với bảng kết quả là phần được đánh dấu màu xanh lục bao gồm cả phần chồng chéo và phần còn lại của vòng tròn bên phải.

Biểu diễn sơ đồ venn cho phép nối bên phải

​​Cú pháp như bên dưới, điểm khác biệt duy nhất là từ khóa RIGHT .

  CHỌN cột
  TỪ bảng1
  RIGHT THAM GIA bảng 2
  Quan hệ ON;  

RIGHT OUTER JOIN

FULL OUTER JOIN trong SQL

Bạn có thể nghĩ đến FULL OUTER JOIN là sự kết hợp của Phép nối bên trái và Phép nối bên phải. Nó sẽ giữ tất cả các hàng từ cả hai bảng và dữ liệu bị thiếu sẽ được điền bằng NULL .

Bạn có thể tưởng tượng nó với biểu đồ Venn có hai vòng tròn, với bảng kết quả là phần được đánh dấu màu xanh lá cây bao gồm mọi thứ: phần chồng chéo, vòng tròn bên trái và vòng tròn bên phải.

Biểu diễn sơ đồ venn cho Tham gia toàn bên ngoài

Cú pháp như bên dưới, sử dụng từ khóa FULL .

  CHỌN cột
  TỪ bảng1
  FULL THAM GIA bảng2
  Quan hệ ON;  

FULL OUTER JOIN

Ví dụ về toán tử SQL JOIN

Một cơ sở dữ liệu khả thi cho một phòng khám thú y có thể có một bàn cho vật nuôi và một bàn cho chủ sở hữu. Vì một chủ sở hữu có thể có nhiều vật nuôi, bảng vật nuôi sẽ có cột owner_id trỏ đến bảng chủ sở hữu.

Tôi
Tên
tuổi tác
owner_id

1
Fido
7
1

2
Missy
3
1

3
Sissy
10
2

4
Đồng
1
3

5
Phễu
2

Tôi
Tên
số điện thoại

1
Johnny
4567823

2
Olly
7486513

3
Ilenia
3481365

4
Luise
1685364

Bạn có thể sử dụng truy vấn đơn giản để nhận một bảng có tên vật nuôi và tên chủ sở hữu bên cạnh nhau. Hãy làm điều đó với tất cả các toán tử JOIN khác nhau.

Ví dụ SQL INNER JOIN

Hãy làm điều đó trước bằng cách sử dụng JOIN .

Trong trường hợp này, bạn sẽ CHỌN cột tên từ bảng vật nuôi (và đổi tên nó pet_name ). Sau đó, bạn sẽ chọn cột name từ bảng owner và đổi tên nó thành owner . Điều đó sẽ trông giống như sau: CHỌN pet.name AS pet_name, owner.name AS owner .

Bạn sẽ sử dụng FROM để nói rằng các cột từ bảng vật nuôi THAM GIA để nói rằng bạn muốn tham gia nó với bảng chủ sở hữu , sử dụng cú pháp sau: FROM vật nuôi THAM GIA chủ sở hữu .

Và cuối cùng, bạn sẽ nói rằng bạn muốn nối hai hàng với nhau khi cột owner_id trong bảng vật nuôi là bằng cột id trong bảng owner với ON Pet.owner_id = owner.id .

Đây là tất cả cùng nhau:

  CHỌN pet.name AS pet_name, owner.name AS chủ sở hữu
  TỪ vật nuôi
  THAM GIA chủ sở hữu
  TRÊN Pet.owner_id = Owner.id;  

Bạn sẽ nhận được một bảng như dưới đây, trong đó chỉ bao gồm những vật nuôi được kết nối với chủ sở hữu và chủ sở hữu được kết nối với vật nuôi.

tên thú nuôi
chủ nhân

Fido
Johnny

Missy
Johnny

Sissy
Olly

Đồng
Ilenia

Ví dụ về SQL LEFT JOIN

Hãy thực hiện cùng một truy vấn bằng cách sử dụng LEFT JOIN để bạn có thể thấy sự khác biệt. Truy vấn giống với việc thêm từ khóa LEFT .

  CHỌN pet.name AS pet_name, Owner.name AS owner
  TỪ vật nuôi
  Chủ sở hữu LEFT THAM GIA
  BẬT vật nuôi.owner_id = owner.id;  

Trong trường hợp này, các hàng từ bảng bên trái, vật nuôi , đều được giữ lại và khi thiếu dữ liệu sẽ đến từ bảng owner , nó được điền bằng NULL .

tên thú nuôi
chủ nhân

Fido
Johnny

Missy
Johnny

Sissy
Olly

Đồng
Ilenia

Phễu
VÔ GIÁ TRỊ

Có vẻ như có một con vật cưng chưa được đăng ký với chủ sở hữu.

Ví dụ về SQL RIGHT JOIN

Nếu bạn làm cùng một truy vấn sử dụng RIGHT JOIN , bạn sẽ nhận được một kết quả khác.

  CHỌN pet.name AS pet_name, Owner.name AS owner
  TỪ vật nuôi
  RIGHT THAM GIA chủ sở hữu
  TRÊN pet.owner_id = owner.id;  

Trong trường hợp này, tất cả các hàng từ bảng bên phải, owner , được giữ lại và nếu thiếu giá trị , nó được điền bằng NULL .

tên thú nuôi
chủ nhân

Fido
Johnny

Missy
Johnny

Sissy
Olly

Đồng
Ilenia

VÔ GIÁ TRỊ
Louise

Có vẻ như có một chủ sở hữu chưa đăng ký thú cưng.

Ví dụ về SQL FULL JOIN

Bạn có thể làm lại cùng một truy vấn, sử dụng FULL JOIN .

  CHỌN pet.name AS pet_name, Owner.name AS owner
  TỪ vật nuôi
  Chủ sở hữu ĐẦY ĐỦ THAM GIA
  ON pet.owner_id = owner.id;  

Bảng kết quả lại khác - trong trường hợp này, tất cả các hàng từ hai bảng đều được giữ nguyên.

tên thú nuôi
chủ nhân

Fido
Johnny

Missy
Johnny

Sissy
Olly

Đồng
Ilenia

Phễu
VÔ GIÁ TRỊ

VÔ GIÁ TRỊ
Louise

Có vẻ như có một con vật cưng không có chủ và một con vật nuôi không có chủ trong cơ sở dữ liệu của chúng tôi.

Kết luận

Trong cơ sở dữ liệu quan hệ, tất cả dữ liệu chỉ nên viết một lần. Sau đó, để phân tích dữ liệu này, bạn cần một cái gì đó để nối các dữ liệu liên quan lại với nhau.

Trong bài viết này, bạn đã học cách sử dụng toán tử JOIN để làm như vậy. Tôi hy vọng nó sẽ hữu ích cho bạn, chúc bạn vui vẻ!


Xem thêm những thông tin liên quan đến chủ đề tham gia sql so với tham gia bên trong

SQL Outer Joins and Cross Joins Tutorial

  • Tác giả: Edward Kench
  • Ngày đăng: 2013-03-25
  • Đánh giá: 4 ⭐ ( 1990 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Left outer joins, right outer joins, full outer joins, and cross joins, all explained in this simple tutorial. Download the sample SQL script used in this video here: http://www.reportingsales.com/products/BidwxOuter.zip Use SQL Server 2012.

Tham gia bên trong so với tham gia bên ngoài

  • Tác giả: vie.weblogographic.com
  • Đánh giá: 5 ⭐ ( 6269 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Sự khác biệt giữa Tham gia Nội bộ và Tham gia Bên ngoài là gì? Trong SQL, phép nối được sử dụng để so sánh và kết hợp - nối theo nghĩa đen - và trả về các hàng dữ liệu cụ thể từ hai hoặc nhiều bảng trong cơ sở dữ liệu. Một kết nối bên trong tìm và trả về dữ liệu khớp từ các bảng, trong khi một kết nối bên ngoài tìm và trả về khớp ...

Tham gia bảng và truy vấn

  • Tác giả: support.microsoft.com
  • Đánh giá: 5 ⭐ ( 8466 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Sử dụng tham gia trong các truy vấn Access để kết hợp các bản ghi từ các nguồn dữ liệu khác nhau để mỗi cặp bản ghi từ các nguồn sẽ trở thành một bản ghi trong kết quả truy vấn.

Tham gia bên trong so với tham gia bên ngoài (Công nghệ)

  • Tác giả: vi.sawakinome.com
  • Đánh giá: 5 ⭐ ( 6416 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Sự khác biệt giữa Tham gia Nội bộ và Tham gia Bên ngoài là gì? Trong SQL, phép nối được sử dụng để so sánh và kết hợp - nối theo nghĩa đen - và trả về các hàng dữ liệu cụ thể từ hai hoặc nhiều bảng trong cơ sở dữ liệu. Một kết nối bên trong tìm và trả về dữ liệu khớp từ các bảng, trong khi một kết nối bên ngoài tìm và trả về khớp

SQL THAM GIA - Mệnh đề WHERE so với mệnh đề ON

  • Tác giả: qastack.vn
  • Đánh giá: 5 ⭐ ( 6198 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: [Tìm thấy giải pháp!] Chúng không giống nhau. Hãy xem xét các truy vấn sau: SELECT * FROM Orders LEFT…

Tham gia SQL (Trong Postgres)

  • Tác giả: helpex.vn
  • Đánh giá: 4 ⭐ ( 6072 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Ngôn ngữ truy vấn có cấu trúc yêu quý của chúng ta có thể là ngôn ngữ phổ biến cho cơ sở dữ liệu quan hệ - nhưng giống như nhiều ngôn ngữ, SQL đang ở trong trạng thái phát triển liên tục.…

SQL - THAM GIA BÊN TRONG

  • Tác giả: isolution.pro
  • Đánh giá: 4 ⭐ ( 2079 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Điều quan trọng nhất và thường xuyên được sử dụng trong các phép nối là INNER JOIN. Chúng cũng được gọi làEQUIJOIN. INNER JOIN tạo một bảng kết quả mới bằng cách kết hợp các giá trị cột của hai bảng (table1 và table2) dựa trên vị từ nối. Truy vấn so sánh từng hàng của bảng1 với từng hàng...

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình