Tìm hiểu cách kết hợp dữ liệu từ hai bảng bằng toán tử SQL JOIN.

Bạn đang xem : tham gia bên trong là gì

Làm cách nào để bạn kết hợp dữ liệu từ các bảng khác nhau trong một truy vấn? Một tính năng SQL được gọi là JOIN là toán tử phổ biến nhất được sử dụng để tạo các truy vấn phức tạp. Tìm hiểu những điều cơ bản trong bài viết này.

SQL cho phép chúng tôi chọn dữ liệu từ nhiều bảng. Trên thực tế, toàn bộ ý tưởng sử dụng cơ sở dữ liệu quan hệ là chọn dữ liệu từ các bảng liên quan. Và chúng ta có thể sử dụng toán tử SQL’s JOIN để thực hiện việc này.

Có nhiều loại JOIN trong SQL. Trong bài viết này, chúng ta sẽ tập trung vào INNER JOIN , là lệnh JOIN mặc định (tức là lệnh bạn nhận được nếu sử dụng JOIN từ khóa của chính nó).

Khi nào bạn cần tham gia?

Tại sao chúng ta cần kết hợp dữ liệu từ một số bảng? Câu trả lời đơn giản là đôi khi một bảng không chứa tất cả dữ liệu bạn cần.

Hãy tưởng tượng rằng bảng movie lưu trữ thông tin trong các cột id , title , production_year < / code> và director_id .

idtitleproduction_yeardirector_id

1Psycho19601

2Midnight in Paris20112

3Sweet và Lowdown19932

4Nói chuyện với cô ấy20023

5 Làn da tôi sống ở đây20113

Một bảng khác, director , chứa thông tin về các giám đốc: id , name của họ sinh_năm .

idnamebirth_year

1Alfred Hitchcock1899

2Woody Allen1935

3Pedro Almodóvar1949

Lưu ý rằng mỗi phim chỉ có một cột liên quan đến đạo diễn: director_id . Các giá trị số ID giống nhau trong bảng director (trong cột director_id ) và trong bảng movie > (trong cột id ).

Chúng tôi muốn hiển thị dữ liệu của từng bộ phim cùng với thông tin chi tiết về đạo diễn của bộ phim đó. Kết quả là một bảng mới với dữ liệu từ hai bảng: movie director . Các bảng được kết hợp (hoặc nối với nhau) dựa trên số ID của giám đốc. Nói cách khác, phim có director_id cụ thể được kết hợp với thông tin của đạo diễn có ID này - ví dụ: bộ phim Psycho với director_id = 1 được khớp với bản ghi trong đó id = 1 (Alfred Hitchcock) trong director bảng. Nhìn vào tập hợp kết quả:

idtitleproduction_yeardirector_ididnamebirth_year

1Psycho196011Alfred Hitchcock1899

2Midnight in Paris201122Woody Allen1935

3Sweet and Lowdown199322Woody Allen1935

4Nói chuyện với cô ấy200233Pedro Almodóvar1949

5 Làn da tôi sống ở đây201133Pedro Almodóvar1949

Phiên bản minh họa của một ví dụ tương tự được trình bày trong bài viết Hướng dẫn minh họa cho SQL INNER JOIN .

Cách sử dụng JOIN trong Truy vấn SQL

Bây giờ, hãy phân tích truy vấn mà chúng tôi vừa sử dụng. Nó lại đây:

LỰA CHỌN *
TỪ phim
THAM GIA giám đốc
ON movie.director_id = director.id;

JOIN là một dạng ngắn hơn của mệnh đề INNER JOIN ; bạn có thể sử dụng chúng thay thế cho nhau.

Sau khi bạn CHỌN các cột của mình, bạn đặt từ khóa FROM và tên của bảng đầu tiên (trong ví dụ này, movie ). Sau đó, bạn đặt JOIN (hoặc INNER JOIN ), theo sau là tên của bảng thứ hai (ở đây, director ). Tiếp theo là từ khóa ON và điều kiện nối (tức là cách khớp các bản ghi từ cả hai bảng). Trong trường hợp này, điều kiện kết hợp khớp với các giá trị trong cột director_id trong bảng movie với cột id trong bảng < strong> giám đốc .

Theo cách này, các bản ghi trong bảng movie được khớp với các bản ghi chính xác trong director . Bây giờ chúng ta biết rằng bộ phim Sweet and Lowdown được chỉ đạo bởi đạo diễn Woody Allen, người sinh năm 1935. Bộ phim này có director_id = 2 ; có giá trị khớp với cột tương ứng ( id ) trong bảng director .

Hình ảnh động bên dưới cho thấy cách sử dụng toán tử JOIN hoạt động và bản ghi nào được trả về:

Một THAM GIAToán tử hoạt động hợp lý, theo hai bước. Bước đầu tiên trả về một tích Descartes, tức là mỗi hàng trong bảng đầu tiên được kết hợp với mỗi hàng trong bảng thứ hai. Trong bước tiếp theo, chỉ các cặp bản ghi đáp ứng điều kiện trong mệnh đề ON được trả về - trong ví dụ này, chỉ các hàng có director_id trong movie bằng id trong director .

Lưu ý rằng các giá trị được sử dụng trong điều kiện kết hợp không nhất thiết phải là số. Bạn cũng có thể sử dụng các giá trị văn bản và các điều kiện khác phức tạp hơn. Bạn có thể tìm thêm thông tin trong bài viết SQL INNER JOIN được giải thích bằng từ đơn giản .

Điều gì sẽ xảy ra nếu các bản ghi không khớp?

Điều gì sẽ xảy ra nếu có các bản ghi trong bảng đầu tiên không thể khớp với các bản ghi trong bảng thứ hai hoặc ngược lại? INNER JOIN hoạt động như thế nào trong trường hợp này? Hãy xem một ví dụ. Đây lại là bảng movie :

idtitleproduction_yeardirector_id

1Psycho19601

2Midnight in Paris20112

3Sweet và Lowdown19932

4Nói chuyện với cô ấy20023

5 Làn da tôi sống vào năm 2013

6Nhà mới2020NULL

Và đây là director :

idnamebirth_year

1Alfred Hitchcock1899

2Woody Allen1935

3Pedro Almodóvar1949

4Martin Scorsese1942

Đây là cùng một truy vấn:

CHỌN tiêu đề, production_year, director_id,
       id, name, sinh_year
TỪ phim
THAM GIA giám đốc
ON movie.director_id = director.id;

Bảng kết quả chỉ chứa các bản ghi là một cặp phù hợp:

idtitleproduction_yeardirector_ididnamebirth_year

1Psycho196011Alfred Hitchcock1899

2Midnight in Paris201122Woody Allen1935

3Sweet and Lowdown199322Woody Allen1935

4Nói chuyện với cô ấy200233Pedro Almodóvar1949

5 Làn da tôi sống vào năm 201133Pedro Almodóvar1949

Nếu bạn nhìn vào bảng movie , thì cột director_id là NULL cho phim The new house. Và trong bảng director , đạo diễn Martin Scorsese ( id = 4 ) không liên quan đến bất kỳ hàng nào trong bảng phim . Do đó, các hàng này không được hiển thị trong tập kết quả.

Quy tắc cho INNER JOIN (JOIN) là chỉ các hàng có khớp trong cả hai bảng mới được trả về. Trong các loại toán tử JOIN khác, hành vi này là khác nhau. Mở rộng chủ đề này bằng cách đọc bài viết Giải thích các loại SQL JOIN .

Lọc bản ghi trong tập kết quả

Bạn cũng có thể lọc các bản ghi được trả về bởi JOIN . Ví dụ: chúng tôi chỉ có thể liệt kê những phim đó và đạo diễn của chúng mà đạo diễn sinh sau năm 1940. Sau đây là câu hỏi:

CHỌN tiêu đề, production_year, director_id,
       id, name, sinh_year
TỪ phim
THAM GIA giám đốc
TRÊN movie.director_id = director.id
WHERE director.birth_year & gt; 1940;

Nó trả về kết quả:

idtitleproduction_yeardirector_ididnamebirth_year

4Nói chuyện với cô ấy200233Pedro Almodóvar1949

5 Làn da tôi sống vào năm 201133Pedro Almodóvar1949

Một lần nữa, chúng ta có các hàng từ bảng movie được kết hợp với các hàng từ bảng director . Ban đầu, điều kiện tham gia là giống nhau (ON director.id = movie.director_id).

Tuy nhiên, trong bước tiếp theo, các bản ghi có giá trị nhỏ hơn hoặc bằng 1940 trong cột năm sinh sẽ bị xóa. Do đó, bạn không tìm thấy Woody Allen trong tập kết quả vì ông sinh năm 1935 (trước / dưới năm 1940). Alfred Hitchcock cũng không có ở đây; anh ấy sinh năm 1899. Chúng tôi làm được điều này nhờ WHERE director.birth_year & gt; 1940 .

Bạn muốn tìm hiểu thêm về SQL JOINs?

Nếu bạn muốn mở rộng kỹ năng của mình, hãy thử khóa học Cơ bản về SQL của chúng tôi, khóa học này bao gồm nhiều hơn về cách nối các bảng (bao gồm rất nhiều bài tập thực hành!). Đây là một phần của bài học Nguyên tắc cơ bản về SQL , sẽ giúp bạn nâng cao kiến ​​thức SQL của mình lên cấp độ tiếp theo.

Hoặc có thể bạn đã biết một số SQL và bạn muốn tìm hiểu thêm về JOIN. Trong trường hợp đó, tôi khuyên bạn nên xem Cách tìm hiểu SQL JOIN , Giải thích các loại SQL JOIN Bảng lừa đảo SQL JOIN của chúng tôi. Bạn cũng có thể tham gia khóa học SQL JOINs của chúng tôi. Sau đó, hãy thực hành những gì bạn biết bằng cách sử dụng Đường dẫn học tập trực tuyến về Thực hành SQL của chúng tôi. Chúc bạn học vui vẻ!


Xem thêm những thông tin liên quan đến chủ đề tham gia bên trong sql là gì

Learn SQL In 60 Minutes

  • Tác giả: Web Dev Simplified
  • Ngày đăng: 2018-11-17
  • Đánh giá: 4 ⭐ ( 4198 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: In this video we will cover everything you need to know about SQL in only 60 minutes. We will cover what SQL is, why SQL is important, what SQL is used for, the syntax of SQL, and multiple examples of SQL. SQL is the standard language for interacting with and manipulating data in a relational database system, and is one of the most important concepts you can learn in programming. It allows you to create, read, update, and delete data which is something nearly every application will need to do.

    IMPORTANT: Exercises Worksheet Repository:
    https://github.com/WebDevSimplified/Learn-SQL

    How to Install MySQL:
    https://youtu.be/u96rVINbAUI

    Outline:
    [00:00] - Intro
    [05:10] - SQL Syntax
    [07:30] - Create Database
    [09:20] - Drop Database
    [10:34] - Use Database
    [11:22] - Create Table
    [13:01] - Alter Table
    [14:47] - Drop Table
    [15:08] - Create Table (Part 2)
    [15:35] - Band Table
    [15:55] - Not Null
    [16:10] - Primary Key/ID/Auto Increment
    [18:40] - Album Table
    [20:05] - Foreign Key/Table Relationships
    [23:05] - Insert Into
    [25:40] - Select
    [26:27] - Limit
    [26:52] - Specific Columns
    [27:18] - As/Alias Columns
    [28:20] - Order By
    [29:24] - Insert Into (Part 2)
    [32:04] - Distinct Select
    [33:07] - Update
    [33:40] - Where
    [33:15] - Less Than
    [33:55] - Like String Filter
    [37:26] - Or
    [38:04] - And
    [38:40] - Between
    [39:20] - Is Null
    [39:46] - Delete
    [41:00] - Join
    [43:25] - Inner/Left/Right Comparison
    [46:42] - Aggregate Functions
    [48:05] - Group By
    [50:40] - Combined With Join
    [51:15] - Alias Tables
    [53:57] - Having vs Where

    Learn X in Y Minutes Playlist:
    http://bit.ly/2RscdMZ

    Twitter:
    https://twitter.com/DevSimplified

    GitHub:
    https://github.com/WebDevSimplified

    CodePen:
    https://codepen.io/WebDevSimplified

    SQL LearnSQL MySQL

Tham gia bên ngoài trong SQL là gì?

  • Tác giả: presbyteryofstockton.org
  • Đánh giá: 5 ⭐ ( 7975 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tham gia bên ngoài. Khi thực hiện một phép nối bên trong, các hàng từ một trong hai bảng chưa được so khớp trong bảng khác sẽ không được trả về. Trong một phép nối bên ngoài, các hàng chưa khớp trong một hoặc cả hai bảng có thể được trả về. Có một số kiểu nối ngoài: FULL OUTER JOIN trả về các hàng chưa khớp từ cả hai bảng.

Stored Procedure Parameters trong SQL Server

  • Tác giả: freetuts.net
  • Đánh giá: 5 ⭐ ( 4203 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Giới thiệu tham số Stored Procedure Parameters trong SQL Server, cách sử dụng tham số khi làm việc với stored procedure như tạo tham số, truyền tham số trong.

SQL Server: Sự khác biệt giữa THAM GIA BỞI và NHÓM B BYNG

  • Tác giả: qastack.vn
  • Đánh giá: 3 ⭐ ( 1328 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 được sử dụng ở những nơi khác nhau. group bysửa đổi toàn bộ truy vấn,…

Sự khác biệt giữa Tham gia bên trong và Tham gia bên ngoài

  • Tác giả: vi.strephonsays.com
  • Đánh giá: 4 ⭐ ( 9173 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Tham gia bên trong và tham gia bên ngoài Tham gia bên trong và tham gia bên ngoài là hai trong số các phương pháp nối SQL được sử dụng trong xử lý truy vấn cho cơ sở dữ liệu. Họ thuộc về gia đình của

50 câu hỏi và câu trả lời phỏng vấn SQL hàng đầu dành cho những người có kinh nghiệm & làm mới (Phần I)

  • Tác giả: viblo.asia
  • Đánh giá: 3 ⭐ ( 3882 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: SQL là viết tắt của Structured Query Language là một ngôn ngữ lập trình dành riêng cho miền để quản lý dữ liệu trong Hệ thống quản lý cơ sở dữ liệu. Kỹ năng lập trình SQL rất được mong muốn và yêu cầu...

Truy vấn con trong sql - Deft Blog

  • Tác giả: shareprogramming.net
  • Đánh giá: 4 ⭐ ( 8832 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong SQL truy vấn lồng là một câu truy vấn được định nghĩa bên trong một câu truy vấn khác. Câu truy vấn được đặt bên trong một câu truy vấn

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

Xem Thêm  Active Minitool Partition Wizard By Serial Key

By ads_php