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 | 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 | 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 products và categories 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.