Tham gia nhiều bảng trong MySQL

Vấn đề. Liệt kê tất cả các đơn đặt hàng, được sắp xếp theo số thứ tự, với tên nhà cung cấp, tên sản phẩm, số lượng, giá cả

SẢN PHẨMIdSản phẩmTênNhà cung cấpIdĐơn vịGiáGóiCóNgừngĐẶT HÀNGMã thứ tựMidThứ tựIdSản phẩmIdĐơn vịGiáSố lượngĐẶT HÀNGIdĐơn hàngNgàyĐặt hàngSố lượngKhách hàngIdTổng số tiền

Sử dụng THAM GIA trong SQL không có nghĩa là bạn chỉ có thể tham gia hai bảng. Bạn có thể tham gia 3, 4 hoặc thậm chí nhiều hơn. Các khả năng là vô hạn

Cách tốt nhất để thực hành SQL THAM GIA là LearnSQL. khóa học SQL THAM GIA tương tác của com. Nó chứa hơn 90 bài tập thực hành cho phép bạn làm mới kiến ​​thức SQL THAM GIA của mình. Nó bao gồm một loạt các chủ đề từ các

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0 2 bảng đơn giản, thông qua việc nối nhiều bảng và sử dụng các
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
1, để nối một bảng với chính nó

Nếu bạn vừa mới học các ký tự

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0 trong SQL, bạn có thể nghĩ rằng nó chỉ giới hạn trong hai bảng. Điều đó không có gì đáng ngạc nhiên - khái niệm này có thể khó hiểu và ý tưởng THAM GIA có thể trở nên phức tạp hơn lúc đầu có thể thực sự đáng sợ. Sự thật là bạn có thể dễ dàng mở rộng ý tưởng này thành ba bảng hoặc thậm chí nhiều hơn. Nhìn vào truy vấn dưới đây

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;

Chúng tôi chỉ đơn giản lặp lại mệnh đề

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0 và nối ba bảng. Chúng ta sẽ tìm hiểu sâu hơn về truy vấn và bảng trong phần tiếp theo

Tìm hiểu dữ liệu

Đầu tiên, hãy giới thiệu một vài bảng. Đây là lược đồ

Trong sơ đồ mối quan hệ thực thể (ERD) ở trên, bạn có thể thấy các bảng, cột của chúng, kiểu dữ liệu của cột và tham chiếu giữa các bảng. Ví dụ: có một tham chiếu giữa bảng

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
4 và bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5 – mỗi học sinh có thể được liên kết với nhiều hàng trong bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5. Để biết thêm thông tin về cách đọc lược đồ, hãy xem bài viết Ký hiệu chân quạ trên blog Vertabelo

Dữ liệu ví dụ của chúng tôi được lưu trữ trong bốn bảng. Ngay bây giờ, chúng tôi sẽ tập trung vào ba bảng đầu tiên

  • SELECT
      student.first_name,
      student.last_name,
      course.name
    FROM student
    JOIN student_course
      ON student.id = student_course.student_id
    JOIN course
      ON course.id = student_course.course_id;
    
    4 – Chứa thông tin về sinh viên
    • SELECT
        student.first_name,
        student.last_name,
        course.name
      FROM student
      JOIN student_course
        ON student.id = student_course.student_id
      JOIN course
        ON course.id = student_course.course_id;
      
      8 – ID của sinh viên
    • SELECT
        student.first_name,
        student.last_name,
        course.name
      FROM student
      JOIN student_course
        ON student.id = student_course.student_id
      JOIN course
        ON course.id = student_course.course_id;
      
      9 – Họ và tên học sinh
    • SELECT
        student.first_name,
        student.last_name,
        course.name
      FROM student
      JOIN student_course
        ON student.id = student_course.student_id
      JOIN course
        ON course.id = student_course.course_id;
      
      10 – Họ của học sinh
  • SELECT
      student.first_name,
      student.last_name,
      course.name
    FROM student
    JOIN student_course
      ON student.id = student_course.student_id
    JOIN course
      ON course.id = student_course.course_id;
    
    5 – Chứa thông tin về sinh viên nào tham gia khóa học nào
    • SELECT
        student.first_name,
        student.last_name,
        course.name
      FROM student
      JOIN student_course
        ON student.id = student_course.student_id
      JOIN course
        ON course.id = student_course.course_id;
      
      12 – ID của học sinh
    • SELECT
        student.first_name,
        student.last_name,
        course.name
      FROM student
      JOIN student_course
        ON student.id = student_course.student_id
      JOIN course
        ON course.id = student_course.course_id;
      
      13 – ID của khóa học
  • SELECT
      student.first_name,
      student.last_name,
      course.name
    FROM student
    JOIN student_course
      ON student.id = student_course.student_id
    JOIN course
      ON course.id = student_course.course_id;
    
    14 – Chứa thông tin về các khóa học
    • SELECT
        student.first_name,
        student.last_name,
        course.name
      FROM student
      JOIN student_course
        ON student.id = student_course.student_id
      JOIN course
        ON course.id = student_course.course_id;
      
      8 – ID của khóa học
    • SELECT
        student.first_name,
        student.last_name,
        course.name
      FROM student
      JOIN student_course
        ON student.id = student_course.student_id
      JOIN course
        ON course.id = student_course.course_id;
      
      16 – Tên khóa học
    • SELECT
        student.first_name,
        student.last_name,
        course.name
      FROM student
      JOIN student_course
        ON student.id = student_course.student_id
      JOIN course
        ON course.id = student_course.course_id;
      
      17 – ID của giáo viên cho khóa học đó

Chúng ta sẽ sử dụng bảng

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
18 sau này trong khóa học với các truy vấn nâng cao hơn. Tôi sẽ giải thích nó sau đó. Trong lúc đó, hãy xem dữ liệu ví dụ từ ba bảng này

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
19

idfirst_namelast_name1ShreyaBain2RiannaFoster3YosefNaylor

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
10

student_idcourse_id121321222331

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
11

idnameteacher_id1Thiết kế cơ sở dữ liệu12Văn học Anh23Lập trình Python1

Bàn nối

Điều quan trọng cần lưu ý là bảng

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5 là bảng nối. Mục đích duy nhất của bảng này là để kết nối các bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
4 và
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
14 với nhau

Ví dụ: “Shreya Bain” (sinh viên với

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
15) được kết nối với “Văn học Anh” (khóa học với
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
16) và “Lập trình Python” (khóa học với
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
17). Làm sao chúng ta biết được điều này? . Hàng đầu tiên ghi rằng sinh viên có ID bằng 1 (cột ______112) được kết nối với khóa học có ID bằng 2 (cột ____113). Từ hàng thứ 2 ta thấy sinh viên có ID bằng 1 được kết nối với khóa học có ID bằng 3. Sau đó, nhìn vào bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
4, chúng ta có thể đọc rằng Shreya Bain có ID bằng 1. Cuối cùng, nhìn vào bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
14, chúng ta có thể đọc rằng văn học Anh và lập trình Python có ID lần lượt là 2 và 3

Mối quan hệ giữa bảng

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
4 và bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
14 được gọi là mối quan hệ nhiều-nhiều. Một sinh viên có thể tham dự nhiều khóa học (i. e. nhiều hàng có cùng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
12 có thể nằm trong bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5) và một khóa học có thể có nhiều học viên tham gia (i. e. nhiều hàng trong bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5 có thể có cùng một
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
13)

Chúng ta đã thấy việc sử dụng bảng nối. Hãy nhìn vào mã một lần nữa

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;

Như bạn có thể thấy, chúng tôi đang sử dụng bảng

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
4 trong mệnh đề
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
20. Sau đó, chúng tôi sẽ kết hợp nó với bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5 và cuối cùng là với bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
14. Bằng cách này, chúng tôi có thể hiển thị họ và tên của từng sinh viên cùng với các khóa học họ đang tham dự. Là mã vẫn còn khó hiểu?

Kết quả của truy vấn này sẽ trông như thế này

first_namelast_namenameShreyaBainVăn học AnhShreyaBainLập trình PythonRiannaFosterThiết kế cơ sở dữ liệuRiannaFosterVăn học AnhRiannaFosterLập trình PythonYosefNaylorThiết kế cơ sở dữ liệu

Nếu bạn muốn viết các truy vấn của riêng mình liên kết nhiều bảng, bạn cần hiểu đầy đủ điều gì đang xảy ra trong truy vấn này. Hãy chia truy vấn của chúng ta thành các bước

Tham gia 3 bảng bằng cách sử dụng bảng nối

Bước 1

Bước đầu tiên là xem lược đồ và chọn các cột chúng tôi muốn hiển thị. Vì chúng tôi muốn hiển thị các sinh viên cùng với các khóa học của họ, chúng tôi sẽ cần ba cột.

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
23,
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
24 và
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
25

Điều quan trọng là sử dụng tên bảng khi liệt kê các cột của bạn. Bằng cách đó, bạn sẽ không bị lạc trong các tên cột khác nhau và bạn sẽ biết ngay cột nào thuộc về bảng nào

Tại thời điểm này, truy vấn của chúng ta sẽ như thế này

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
1

Bước 2

Bước tiếp theo là xác định bảng nào sẽ cần thiết cho truy vấn. Có hai cái rõ ràng.

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
4 và
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
14. Tuy nhiên, chúng ta sẽ phải tìm cách tham gia các bảng này. Nhìn vào lược đồ cơ sở dữ liệu, chúng ta thấy rằng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5 là một bảng nối giữa hai. Vì vậy, chúng ta cũng sẽ cần cái bàn đó

Bước 3

Trong phần cuối cùng, chúng ta sẽ phải nối tất cả các bảng lại với nhau. Nhiệm vụ đầu tiên là chọn bảng sẽ đi vào mệnh đề

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
20. Về lý thuyết, nó có thể là bất kỳ bảng nào chúng tôi đang sử dụng. Cá nhân tôi thích bắt đầu với một bảng không phải là bảng nối. Trong trường hợp này, hãy sử dụng bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
4

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
1

Bây giờ, chúng tôi chưa thể tham gia bảng

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
14. Không có kết nối trực tiếp giữa hai bảng này. Vì nó, chúng ta sẽ phải sử dụng bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5. Chúng ta chỉ cần kết nối hai bảng này lại với nhau bằng câu lệnh
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
3. Mã của chúng tôi hình thành

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
8

Trước khi tiếp tục thêm bảng cuối cùng, chúng ta nên nghĩ về những gì chúng ta đã đạt được. Lưu ý rằng khi viết mệnh đề

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0, chúng ta không bị giới hạn ở các cột trong mệnh đề SELECT – chúng ta có quyền truy cập vào tất cả các cột. Vì vậy, sau đó, truy vấn của chúng tôi trông như thế này

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
2

Truy vấn này hiển thị gần như tất cả các cột mà chúng ta có thể sử dụng khi viết câu lệnh

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0 tiếp theo. (Tôi đã xóa cột
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
6 vì chúng tôi sẽ không cần đến nó. ) Hãy xem dữ liệu chúng tôi đang làm việc với

first_namelast_nameidstudent_idcourse_idShreyaBain112ShreyaBain113RiannaFoster221RiannaFoster222RiannaFoster223YosefNaylor331

Đây là cách dữ liệu của chúng tôi trông giống như giữa chừng. Nó thường tốt để suy nghĩ về dữ liệu tại thời điểm này. Đôi khi, bạn có thể muốn xem xét việc viết một truy vấn như vậy theo thời gian chỉ để phân tích các hàng và cột

Kết quả trên sẽ hiển thị rõ ràng những việc cần làm tiếp theo. Chúng tôi có các sinh viên được kết nối với ID của các khóa học họ đang tham gia. Điều duy nhất chúng ta cần là thêm thông tin khóa học. Chúng tôi biết rằng cột

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
13 nằm trong bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5. Chúng ta phải nối nó với cột
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
8 từ bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
14. Truy vấn kết quả trông như thế này

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;

Và chúng tôi đã làm được. Đó là truy vấn chúng tôi muốn viết. Chỉ cần đừng quên dấu chấm phẩy ở cuối mã của bạn

Trong ví dụ này, chúng ta đã phân tích cách viết một truy vấn với các điều kiện tham gia bằng nhau – chúng ta đang sử dụng đẳng thức trong các điều kiện tham gia của mình. Đây là kiểu THAM GIA phổ biến nhất. Tuy nhiên, bạn cũng có thể sử dụng THAM GIA không đẳng thức. Nếu bạn không biết thuật ngữ này, tôi khuyên bạn nên xem Hướng dẫn có minh họa về SQL Non-Equi Join trên LearnSQL. blog com

Tham gia các bảng SQL mà không cần bảng nối

Khi bạn tham gia nhiều hơn hai bảng, không phải lúc nào bạn cũng có bảng nối. Nhưng trước khi chúng ta phân tích một truy vấn mẫu cho kỹ thuật này, hãy kiểm tra bảng cuối cùng trong lược đồ của chúng ta

  • SELECT
      student.first_name,
      student.last_name,
      course.name
    FROM student
    JOIN student_course
      ON student.id = student_course.student_id
    JOIN course
      ON course.id = student_course.course_id;
    
    18 – Chứa thông tin về giáo viên
    • SELECT
        student.first_name,
        student.last_name,
        course.name
      FROM student
      JOIN student_course
        ON student.id = student_course.student_id
      JOIN course
        ON course.id = student_course.course_id;
      
      8 – ID của giáo viên
    • SELECT
        student.first_name,
        student.last_name,
        course.name
      FROM student
      JOIN student_course
        ON student.id = student_course.student_id
      JOIN course
        ON course.id = student_course.course_id;
      
      9 – Tên của giáo viên
    • SELECT
        student.first_name,
        student.last_name,
        course.name
      FROM student
      JOIN student_course
        ON student.id = student_course.student_id
      JOIN course
        ON course.id = student_course.course_id;
      
      10 – Họ của giáo viên

Và đây là bảng

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
18 trông như thế nào

idfirst_namelast_name1TaylahBooker2Sarah-LouiseBlake

Bây giờ, với dữ liệu, chúng tôi muốn cho mỗi giáo viên thấy học sinh của họ. Mỗi cặp giáo viên-học sinh chỉ nên được hiển thị một lần (e. g. nếu một giáo viên có nhiều hơn một khóa học với một học sinh, thì giáo viên đó chỉ được hiển thị một lần cùng với học sinh trong kết quả)

Truy vấn này khá giống với truy vấn trước. Do đó, chúng tôi sẽ làm theo các bước tương tự như trước đây

Bước 1

Đầu tiên, chúng tôi chọn các cột.

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
36,
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
37,
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
23 và
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
24. Sau đó, chúng tôi chọn các bảng cần thiết. Lần này, nó sẽ là tất cả các bảng từ lược đồ của chúng tôi.
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
4,
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5,
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
14 và
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
18

Bước 2

Bây giờ, chúng ta phải tham gia tất cả các bảng. Như tôi đã nói trước đây, chúng ta có thể bắt đầu với bất kỳ bảng nào, nhưng tôi thích bắt đầu từ một trong các bên hơn. Lần trước chúng ta đã đặt bảng

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
4 trong mệnh đề
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
20. Lần này, chúng ta sẽ sử dụng bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
18. Trước khi viết bất kỳ
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0 nào, truy vấn của chúng ta sẽ giống như bên dưới. (Lưu ý từ khóa
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
58; vì chúng ta muốn hiển thị các cặp giáo viên-học sinh riêng biệt nên từ khóa này cực kỳ quan trọng. )

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
3

Bước 3

Bây giờ, việc nối các bảng không khác nhiều so với ví dụ trước. Chúng ta chỉ cần sử dụng mệnh đề

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0 một lần nữa. Tuy nhiên, trước khi làm như vậy, chúng ta hãy xem dữ liệu sau khi nối các bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
18 và
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
14

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5first_namelast_nameidteacher_idnameidTaylahBooker11Thiết kế cơ sở dữ liệu1TaylahBooker11Lập trình Python3Sarah-LouiseBlake22Văn học Anh2

Bạn có thể coi nó như một bảng. Trên thực tế, đây là một phiên bản mở rộng của bảng

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
14

Tham gia hai bảng bổ sung gần giống như quy trình chúng tôi đã sử dụng trước đó. Bạn chỉ cần thêm hai số

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0 giống như trước đây. Bạn chỉ cần ghi nhớ rằng các số
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0 phải được viết theo đúng thứ tự. Khi tham gia, bạn không thể sử dụng các cột từ các bảng chưa được giới thiệu

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
4

Ở phần bị gạch bỏ, tôi đã sao chép một số mã từ truy vấn đầu tiên mà chúng tôi đã tham gia ba bảng. Trong trường hợp này, mã đã sai; . Ví dụ, khi tham gia bảng

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5, chúng tôi đã sử dụng bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
4, được giới thiệu sau

Bên dưới mã bị gạch bỏ, bạn có thể thấy đúng thứ tự

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0. Chúng tôi tham gia các bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5 và khóa học đầu tiên. Sau đó, sử dụng bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
5, chúng ta có thể tham gia bảng
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
4. Bằng cách này, chúng tôi giới thiệu từng bảng trước khi sử dụng nó trong điều kiện
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
01. Hãy luôn ghi nhớ quy tắc quan trọng này

Kết quả của truy vấn trên sẽ như thế này

first_namelast_namefirst_namelast_nameTaylahBookerShreyaBainTaylahBookerRiannaFosterTaylahBookerYosefNaylorSarah-LouiseBlakeShreyaBainSarah-LouiseBlakeRiannaFoster

Trong trường hợp này, chúng tôi đã sử dụng một

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
02. Điều này có nghĩa là nếu giáo viên không có bất kỳ học sinh nào, họ sẽ không xuất hiện trong kết quả. Tất nhiên, bạn có thể thay thế
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
02 bằng bất kỳ loại
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0 nào khác, e. g. ,
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
05. Nếu bạn muốn đọc thêm về các
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
06, hãy xem Cách THAM GIA TRÁI nhiều bảng trong SQL trên LearnSQL. com

Tham gia nhiều bảng trong MySQL

Khái niệm cơ bản là chìa khóa để THAM GIA 3 chiều

Như bạn có thể thấy, nối ba bảng trong SQL không khó như bạn tưởng. Trên thực tế, bạn có thể tham gia bao nhiêu bảng tùy thích – ý tưởng đằng sau nó cũng giống như chỉ tham gia hai bảng

Sẽ rất hữu ích nếu bạn xem qua dữ liệu giữa bước và tưởng tượng rằng các bảng bạn đã tham gia là một bảng

Để thành công ở những

SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0 phức tạp, điều quan trọng là phải hiểu đầy đủ những
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0 cơ bản. Biết rõ chúng sẽ cho phép bạn viết các câu lệnh
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0 cực kỳ phức tạp. Và hãy nhớ - luyện tập tạo nên sự hoàn hảo. Nếu bạn cần thêm lời giải thích hoặc bài tập về các
SELECT
  student.first_name,
  student.last_name,
  course.name
FROM student
JOIN student_course
  ON student.id = student_course.student_id
JOIN course
  ON course.id = student_course.course_id;
0 trong SQL, hãy xem khóa học SQL THAM GIA tại LearnSQL. com

Chúng ta có thể tham gia 5 bảng trong MySQL không?

Một truy vấn SQL có thể THAM GIA nhiều bảng . Đối với mỗi bảng mới, một điều kiện THAM GIA bổ sung được thêm vào. THAM GIA nhiều bảng hoạt động với các truy vấn CHỌN, CẬP NHẬT và XÓA.

Làm cách nào để tham gia bốn bảng trong MySQL?

Điều kiện tiên quyết của chủ đề này là MySQL và cài đặt Máy chủ Apache trên máy tính của bạn. .
Giới thiệu. .
Bước 1. Tạo cơ sở dữ liệu –.
Bước 2. Sử dụng cơ sở dữ liệu –.
Bước 3. Tạo bảng1 –.
Bước 4. Tạo bảng2 –.
Bước 5. Tạo bảng3 –.
Bước 6. Tạo bảng4 –.
Chèn vào s_marks –

Làm cách nào để nối 3 bảng trong MySQL với mệnh đề where?

Cách nối 3 bảng trở lên trong SQL .
Tham gia đơn giản. Đầu tiên, tất cả các bảng được nối bằng từ khóa THAM GIA, sau đó mệnh đề WHERE được sử dụng. TỪ Nhân viên e THAM GIA Tiền lương s THAM GIA Bộ phận d. Ở ĐÂU. ID = s. Emp_ID VÀ e. .
Tham gia lồng nhau. Câu lệnh JOIN lồng nhau được sử dụng với từ khóa ON. CHỌN e. ID, e. tên, s. Lương, d

Làm cách nào để tham gia 3 bảng trong truy vấn SQL?

Cú pháp THAM GIA 3 bảng. .
TỪ tên bảng1
THAM GIA bảng-name2 TRÊN cột-name1 = cột-name2
THAM GIA tên-bảng3 TRÊN tên-cột3 = tên-cột4
điều kiện ở đâu