- vừa được xem lúc

Câu lệnh SQL Join: Các loại Join trong SQL

0 0 39

Người đăng: Phạm Thị Phương lan

Theo Viblo Asia

1. Các loại Join trong SQL

  • Ở bài trước thì mình đã chia sẻ về các câu lệnh thường dùng trong truy vấn CSDL như: SQL DISTINCT, SQL Where,SQL And Or, SQL Count, SQL ORDER BY, SQL GROUP BY, SQL HAVING các bạn có thể tham khảo trong bài viết trước của mình trong link: https://viblo.asia/p/co-so-du-lieu-la-gimysql-mot-so-cau-lenh-truy-van-co-so-du-lieu-thuong-dung-gDVK26AAKLj
  • Hôm nay mình chia sẻ thêm về các câu lệnh SQL Join, các loại Join trong SQL
  • JOIN là phép kết nối dữ liệu từ nhiều bảng lại với nhau, nối 2 bảng, 3 bảng.. với nhau. Khi bạn cần truy vấn các cột dữ liệu từ nhiều bảng khác nhau để trả về trong cùng một tập kết quả , bạn cần dùng JOIN. 2 bảng kết nối được với nhau khi có 1 trường chung giữa 2 bảng này.

1.1 INNER JOIN (Hoặc JOIN)

INNER JOIN (Hoặc JOIN): Trả về tất cả các hàng khi có ít nhất một giá trị ở cả hai bảng

1.2 LEFT OUTER JOIN (Hoặc LEFT JOIN)

LEFT OUTER JOIN (Hoặc LEFT JOIN): Trả lại tất cả các dòng từ bảng bên trái, và các dòng đúng với điều kiện từ bảng bên phải

1.3 RIGHT OUTER JOIN (Hoặc RIGHT JOIN)

RIGHT OUTER JOIN (Hoặc RIGHT JOIN): Trả lại tất cả các hàng từ bảng bên phải, và các dòng thỏa mãn điều kiện từ bảng bên trái

1.4 FULL OUTER JOIN (Hoặc OUTER JOIN)

FULL OUTER JOIN (Hoặc OUTER JOIN): Trả về tất cả các dòng đúng với 1 trong các bảng.

2. Câu lệnh SQL Join

2.1 Câu lệnh INNER JOIN

  • INNER JOIN trả về kết quả là các bản ghi mà trường được join hai bảng khớp nhau, các bản ghi chỉ xuất hiện một trong hai bảng sẽ bị loại.

  • Có thể thay INNER JOIN bởi JOIN. Ý nghĩa và kết quả là như nhau.

  • Cú pháp:

    SELECT column_name(s)

    FROM table1

    INNER JOIN table2

    ON table1.column_name = table2.column_name;

  • INNER JOIN nhiều table

    SELECT column_list

    FROM table1

    INNER JOIN table2 ON join_condition1

    INNER JOIN table3 ON join_condition2

    Ví Dụ:

  • Có bảng khach_hang với thông tin như sau:

  • Có bảng order_kh với thông tin như sau:

    => Ở 2 bảng trên thì thấy rằng MaKH được phản ánh là mã khách hàng ở bảng khach_hang, mối quan hệ 2 bảng là cột MaKH

  • Chúng ta chạy câu lệnh SQL join sau đây, và xem kết quả trả ra, sẽ lấy ra như sau:

    Select * from lanptp.khach_hang as KH

    Join lanptp.order_kh as OD on KH.MaKH= OD.MaKH

2.2 Câu lệnh LEFT OUTER JOIN

  • LEFT OUTER JOIN là từ khóa trả về tất cả các hàng (rows) từ bảng bên trái (table1), với các hàng tương ứng trong bảng bên phải (table2). Chấp nhận cả dữ liệu NULL ở bảng 2.

  • LEFT OUTER JOIN hay còn được gọi là LEFT JOIN

  • Cú pháp:

    SELECT column_name(s)

    FROM table1

    LEFT JOIN table2

    ON table1.column_name = table2.column_name;

  • LEFT JOIN cũng có thể join nhiều table

    SELECT column_list

    FROM table1

    LEFT JOIN table2 ON join_condition1

    LEFT JOIN table3 ON join_condition2

  • Ví dụ: Vẫn với data như 2 bảng ở trên khach_hang, order_kh khi sử dụng câu lệnh Left Join kết quả sẽ trả ra như sau:

    Select * from lanptp.khach_hang as KH

    Left join lanptp.order_kh as OD on KH.MaKH= OD.MaKH

2.3 Câu lệnh RIGHT OUTER JOIN

  • RIGHT OUTER JOIN là từ khóa trả về tất cả các hàng (rows) từ bảng bên phải (table1), với các hàng tương ứng trong bảng bên trái (table2). Chấp nhận cả dữ liệu NULL ở bảng 2. ngược lại với LEFT JOIN

  • RIGHT OUTER JOIN hay còn được gọi là RIGHT JOIN

  • Cú pháp:

    SELECT column_name(s)

    FROM table1

    RIGHT JOIN table2

    ON table1.column_name = table2.column_name;

  • Vẫn với data 2 bảng trên các bạn hãy thử chạy câu lệnh RIGHT JOIN nhé!

  • RIGHT JOIN cũng có thể join nhiều table

    SELECT column_list

    FROM table1

    RIGHT JOIN table2 ON join_condition1

    RIGHT JOIN table3 ON join_condition2

2.4 Câu lệnh FULL OUTER JOIN

  • FULL OUTER JOIN là sự kết hợp của LEFT JOIN và RIGHT JOIN

  • Cú Pháp:

    SELECT column_name(s)

    FROM table1

    FULL OUTER JOIN table2

    ON table1.column_name = table2.column_name

    WHERE condition;

3. Kết Luận

Ở trên mình đã giới thiệu với các bạn về Các loại Join trong SQL và câu lệnh đi kèm, trong quá trình thực hành các bạn có thể kết hợp thêm các câu SQL DISTINCT, SQL Where,SQL And Or, SQL Count, SQL ORDER BY, SQL GROUP BY, SQL HAVING,... để truy vấn theo yêu cầu lấy ra data nhé!. Các bạn cần tìm hiểu thêm để có thể hiểu sâu hơn, kết hợp giữa các câu lệnh với nhau để thực hành tốt các câu lệnh trong MySQL và áp dụng hiệu quả nó vào công việc của bạn. Bạn có thể tham khảo Website ở link tài liệu tham khảo bên dưới để có thể học và thực hành một cách tốt nhất!

Tài liệu tham khảo: https://www.w3schools.com/sql/sql_join.asp

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 525

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 396

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 738

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 358

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 449

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 433