Khi bạn làm việc với cơ sở dữ liệu của mình, bạn có thể cần phải kết hợp dữ liệu từ một vài bảng khác nhau. Bài viết này sẽ chỉ cho bạn cách. Tôi đã viết về SQL tham gia ở đây và ở đây, nhưng chúng ta hãy dành một chút thời gian để xem xét cách tham gia hoạt động đầu tiên và đặc biệt là cú pháp cụ thể cho MySQL. Tham gia là một tuyên bố cho phép bạn kết hợp hai bảng, phù hợp với các hàng có liên quan với nhau và chỉ giữ các hàng có thể phù hợp, không giữ các hàng không ghép đôi. Câu lệnh Làm thế nào hai bảng nên được tham gia được viết trong tuyên bố Có thể sử dụng nhiều câu lệnh tham gia cùng nhau để tham gia nhiều hơn một bảng cùng một lúc. Để làm điều đó, bạn thêm một câu lệnh Tuyên bố tham gia SQL
Generic Nội tâm Nước nối giữa hai bảngSELECT * FROM table1
INNER JOIN table2
ON table1.id = table2.id;
SELECT ... FROM
chỉ ra đó là bảng đầu tiên, sau đó tên bảng thứ hai được viết ngay sau các từ khóa INNER JOIN
.ON
. Trong trường hợp này, hai bảng được nối bằng mối quan hệ table1.id = table2.id
.
Genereric Nội tâm Câu lệnh giữa ba bảngSELECT *
FROM table1
INNER JOIN table2
ON table1.id = table2.id
INNER JOIN table3
ON table2.id = table3.id;
INNER JOIN
thứ hai và câu lệnh ON
thứ hai để chỉ ra bảng thứ ba và mối quan hệ thứ hai.
Hãy nói một chút về các mối quan hệ bạn có thể có giữa các bảng và lý do tại sao bạn có thể muốn tham gia ba bảng với nhau.
Mối quan hệ giữa các bảng trong SQL
Khi bạn có các bảng có liên quan với nhau, các mối quan hệ của họ có thể là một trong những loại khác nhau.
one-to-many
Trong một loại mối quan hệ một-nhiều, một hàng của bảng thứ nhất có thể liên quan đến nhiều hàng của bảng thứ hai.
Trong một cơ sở dữ liệu quan hệ, điều này có thể được triển khai với bảng thứ hai có cột first_table_id
cho biết hàng nào của bảng đầu tiên có liên quan.
many-to-one
Trong một loại mối quan hệ nhiều-một, một hàng của bảng thứ nhất có thể liên quan đến một hàng của bảng thứ hai và một hàng của bảng thứ hai có thể liên quan đến nhiều hàng của bảng thứ nhất.
Trong một cơ sở dữ liệu quan hệ, điều này có thể được triển khai với bảng đầu tiên có cột
SELECT *
FROM table1
INNER JOIN table2
ON table1.id = table2.id
INNER JOIN table3
ON table2.id = table3.id;
0 cho biết hàng nào của bảng thứ hai có liên quan.many-to-many
Trong trường hợp này, nhiều hàng có liên quan đến nhiều hàng.
Kiểu mối quan hệ này không thể được thể hiện như với các bảng SQL-bạn cần thêm một bảng khớp nối giữa hai bảng để chỉ có các mối quan hệ nhiều đến một và một đến nhiều giữa các bảng.
Mỗi hàng của bảng ở giữa đại diện cho một mối quan hệ giữa các hàng của bảng bên trái và các hàng của bảng bên phải.
Trong thực tế trong MySQL, bảng giữa đó sẽ có một cột cho first_table_id
và một cột cho
SELECT *
FROM table1
INNER JOIN table2
ON table1.id = table2.id
INNER JOIN table3
ON table2.id = table3.id;
0, với mỗi kết hợp là duy nhất.Tham gia các bảng SQL trong thực tế
Hãy tưởng tượng chúng tôi có cơ sở dữ liệu của một tổ chức, nơi chúng tôi có một bảng với các nhóm [tên của họ và thông tin nhận dạng khác] và một bảng với các dự án [tên, tiến trình, v.v.].
1 | Ném chuối | Chuối |
2 | Gỗ gỗ | Gặm gỗ |
3 | Những con voi màu hồng | Dậm chân trên mặt đất |
4 | Khoai tây lông tơ | Làm việc và ngủ |
1 | Ném chuối | Chuối |
2 | Gỗ gỗ | Gặm gỗ |
3 | Những con voi màu hồng | Dậm chân trên mặt đất |
Khoai tây lông tơ
1 | 2 |
1 | 3 |
2 | 1 |
3 | 1 |
3 | 2 |
3 | 3 |
3 | 4 |
Làm việc và ngủ
SELECT
teams.team_name AS team_name,
projects.project_name AS project_name
FROM TABLE teams
INNER JOIN matches
ON teams.id = matches.team_id
INNER JOIN matches
ON matches.project_id = projects.id
ORDER BY teams.id;
tiến triển
Tòa nhà đập
Một số gặm gỗ và dậm chân trên mặt đất cần thiết
Bánh chuối
Ai đó đang ăn tất cả chuối
Ném chuối | Gỗ gỗ |
Ném chuối | Chuối |
Gỗ gỗ | Gặm gỗ |
Gỗ gỗ | Chuối |
Những con voi màu hồng | Dậm chân trên mặt đất |
Những con voi màu hồng | Dậm chân trên mặt đất |
Khoai tây lông tơ | Chuối |
Gỗ gỗ
Gặm gỗ
Tuyên bố
SELECT *
FROM table1
INNER JOIN table2
ON table1.id = table2.id
INNER JOIN table3
ON table2.id = table3.id;
3 cho phép bạn tham gia cùng nhau một hoặc nhiều bảng. Nó phải được sử dụng cùng với câu lệnh ON
để xác định mối quan hệ giữa các hàng của bảng và các hàng của một bảng khác.Trong bài viết này, bạn đã học được cách sử dụng câu lệnh
SELECT *
FROM table1
INNER JOIN table2
ON table1.id = table2.id
INNER JOIN table3
ON table2.id = table3.id;
3 để kết hợp ba bảng khác nhau.Học mã miễn phí. Chương trình giảng dạy nguồn mở của Freecodecamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu