Tags:

Mệnh đề FROM trong SQL

Mệnh đề FROM trong SQL được sử dụng để liệt kê các bảng và các phép giao cần thiết cho câu lệnh SQL.

Cú pháp mệnh đề FROM

FROM table1
[ { INNER JOIN
  | LEFT [OUTER] JOIN
  | RIGHT [OUTER] JOIN
  | FULL [OUTER] JOIN } table2
ON table1.column1 = table2.column1 ]

Note: table1 và table2 Đây là các bảng được sử dụng trong câu lệnh SQL. Hai bảng được nối với nhau dựa trên table1.column1 = table2.column1

  • Khi sử dụng mệnh đề FROM trong câu lệnh SQL, phải có ít nhất một bảng được liệt kê trong mệnh đề FROM.
  • Nếu có hai hoặc nhiều bảng được liệt kê trong mệnh đề SQL FROM, các bảng này thường được nối bằng cách sử dụng phép nối INNER hoặc OUTER.

Ví dụ có bảng suppliers với dữ liệu sau

supplier_id supplier_name city state
100 Microsoft Redmond Washington
200 Google Mountain View California
300 Oracle Redwood City California
400 Kimberly-Clark Irving Texas
500 Tyson Foods Springdale Arkansas
600 SC Johnson Racine Wisconsin
700 Dole Food Company Westlake Village California
800 Flowers Foods Thomasville Georgia
900 Electronic Arts Redwood City California
SELECT *
FROM suppliers
WHERE supplier_id < 400
ORDER BY city DESC;

Sẽ có 3 bản ghi được chọn. Đây là những kết quả mà bạn sẽ thấy:

supplier_id supplier_name city state
300 Oracle Redwood City California
100 Microsoft Redmond Washington
200 Google Mountain View California

Trong ví dụ này, mình đã sử dụng mệnh đề FROM để liệt kê bảng suppliers. Không có lệnh nối nào được thực hiện trong truy vấn này vì chúng ta chỉ liệt kê một bảng.

Ví dụ – Hai bảng trong mệnh đề FROM (INNER JOIN)

Hãy xem cách sử dụng mệnh đề FROM để INNER JOIN hai bảng với nhau. Trong ví dụ này, chúng tôi ta một bảng được gọi là products với dữ liệu sau:

product_id product_name category_id
1 Pear 50
2 Banana 50
3 Orange 50
4 Apple 50
5 Bread 75
6 Sliced Ham 25
7 Kleenex NULL

Và một bảng được gọi là categories với dữ liệu sau:

category_id category_name
25 Deli
50 Produce
75 Bakery
100 General Merchandise
125 Technology

Thực hiện phép nối INNER JOIN

SELECT products.product_name, categories.category_name FROM products INNER JOIN categories ON products.category_id = categories.category_id WHERE product_name <> 'Pear';

Sẽ có 5 bản ghi được chọn. Đây là những kết quả mà bạn sẽ thấy:

product_name category_name
Banana Produce
Orange Produce
Apple Produce
Bread Bakery
Sliced Ham Deli

Ví dụ – Hai bảng trong mệnh đề FROM (OUTER JOIN)

Hãy xem cách sử dụng mệnh đề FROM khi MÌNH nối hai bảng với nhau bằng OUTER JOIN. Trong trường hợp này, chúng ta sẽ xem xét THAM GIA LEFT OUTER. Hãy sử dụng cùng một bảng sản phẩm và danh mục từ ví dụ INNER JOIN ở trên, nhưng lần này chúng ta sẽ nối các bảng bằng cách sử dụng LEFT OUTER JOIN. Nhập câu lệnh SQL sau:

SELECT products.product_name, categories.category_name
FROM products 
LEFT OUTER JOIN categories
ON products.category_id = categories.category_id
WHERE product_name <> 'Pear';

Sẽ có 6 bản ghi được chọn. Đây là những kết quả mà bạn sẽ thấy:

product_name category_name
Banana Produce
Orange Produce
Apple Produce
Bread Bakery
Sliced Ham Deli
Kleenex NULL

Ví dụ này sử dụng mệnh đề FROM để LEFT OUTER THAM GIA các bảng productscategories dựa trên category_id trong cả hai bảng. Bây giờ, bản ghi cuối cùng với product_name của ‘Kleenex’ sẽ xuất hiện trong tập kết quả của chúng tôi với giá trị NULL cho category_name. Bản ghi này không xuất hiện trong kết quả của chúng tôi khi chúng tôi thực hiện INNER JOIN.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x