SQL trong Access: Mệnh đề FROM

Đây là bài viết nằm trong tập hợp các bài viết về SQL trong Access. Bài viết này mô tả cách viết một mệnh đề FROM và sử dụng các ví dụ để minh họa các kỹ thuật khác nhau mà bạn có thể sử dụng trong mệnh đề FROM.

Trong một câu lệnh SELECT, bạn chỉ định nguồn dữ liệu trong mệnh đề FROM. Mệnh đề FROM cũng có thể chứa một phép toán JOIN. Bạn sử dụng một phép toán JOIN để khớp và kết hợp dữ liệu từ hai nguồn dữ liệu, chẳng hạn như hai bảng hoặc một bảng và một truy vấn.

Để biết tổng quan SQL trong Access, xem bài viết SQL trong Access: khái niệm cơ bản, từ vựng và cú pháp.

Trong bài viết này

Chỉ định nguồn dữ liệu

Sử dụng tên thay thế cho nguồn dữ liệu

Nối dữ liệu liên quan

Chỉ định nguồn dữ liệu

Trong một câu lệnh SELECT, mệnh đề FROM chỉ định bảng hoặc truy vấn có chứa dữ liệu mà mệnh đề SELECT sẽ sử dụng.

Giả sử rằng bạn muốn biết số điện thoại của một khách hàng cụ thể. Giả sử rằng bảng có chứa trường lưu trữ dữ liệu này được gọi là tblCustomer, mệnh đề FROM sẽ có dạng như sau:

FROM tblCustomer

Bạn có thể sử dụng dấu ngoặc vuông để bao quanh tên. Nếu tên không chứa bất kỳ khoảng trắng hoặc ký tự đặc biệt nào (chẳng hạn như dấu chấm câu) thì dấu ngoặc vuông là tùy chọn. Nếu tên chứa khoảng trắng hoặc ký tự đặc biệt, bạn phải sử dụng dấu ngoặc này.

Mẹo: Tên có chứa khoảng trắng sẽ dễ đọc hơn và có thể giúp tiết kiệm thời gian khi bạn thiết kế biểu mẫu và báo cáo nhưng lại có thể khiến bạn phải nhập nhiều hơn khi viết câu lệnh SQL. Bạn nên cân nhắc dữ kiện này khi đặt tên cho đối tượng trong cơ sở dữ liệu Access.

Sử dụng tên thay thế cho nguồn dữ liệu

Bạn có thể sử dụng một tên khác để tham chiếu đến bảng trong câu lệnh SELECT bằng cách sử dụng biệt danh bảng trong mệnh đề FROM của bạn. Một biệt danh bảng là tên bạn gán cho một nguồn dữ liệu trong truy vấn khi bạn sử dụng một biểu thức làm nguồn dữ liệu hoặc để làm cho câu lệnh SQL trở nên dễ nhập và dễ đọc hơn. Điều này có thể đặc biệt hữu ích nếu tên của nguồn dữ liệu dài hoặc khó nhập, đặc biệt là khi không có nhiều trường trùng tên trong các bảng khác nhau.

Ví dụ: nếu bạn muốn chọn dữ liệu từ hai trường, cả hai được đặt tên ID, một trường lấy từ bảng tblCustomer và trường kia từ bảng tblOrder, mệnh đề SELECT của bạn có thể có dạng như sau:

SELECT [tblCustomer].[ID], [tblOrder].[ID]

Bằng cách sử dụng biệt danh bảng trong mệnh đề FROM, bạn có thể nhập truy vấn dễ dàng hơn. Mệnh đề FROM của bạn với các biệt danh bảng có thể có dạng như sau:

FROM [tblCustomer] AS [C], [tblOrder] AS [O]

Sau đó, bạn có thể sử dụng các biệt danh bảng đó trong mệnh đề SELECT, như sau:

SELECT [C].[ID], [O].[ID]

Ghi chú: Khi bạn sử dụng biệt danh bảng, bạn có thể tham chiếu đến bảng trong câu lệnh SQL của mình bằng cách sử dụng biệt danh hoặc tên bảng đầy đủ.

Nối dữ liệu liên quan

Khi bạn cần kết hợp các cặp bản ghi từ hai nguồn dữ liệu thành các bản ghi đơn lẻ trong một kết quả truy vấn, bạn có thể thực hiện phép toán nối. Nối là phép toán SQL chỉ định mối liên quan giữa hai nguồn dữ liệu và liệu có nên bao gồm dữ liệu từ một nguồn nếu không có dữ liệu tương ứng từ nguồn còn lại hay không.

Để kết hợp thông tin từ hai nguồn dữ liệu, bạn thực hiện một phép toán nối trên trường chung của các nguồn dữ liệu đó. Khi các giá trị được lưu trữ trong trường này khớp, dữ liệu từ các bản ghi được kết hợp trong kết quả.

Ngoài việc kết hợp dữ liệu, bạn cũng có thể sử dụng phép toán nối để cho biết có bao gồm các bản ghi từ một trong hai bảng hay không nếu không có bản ghi tương ứng trong bảng liên quan.

Ví dụ: giả sử bạn muốn sử dụng dữ liệu từ hai bảng trong một truy vấn: tblCustomer và tblOrder. Cả hai bảng đều có trường CustomerID xác định một khách hàng. Mỗi bản ghi trong bảng tblCustomer có thể có một hoặc nhiều bản ghi tương ứng trong bảng tblOrder và có thể xác định các giá trị tương ứng bằng các giá trị trong trường CustomerID.

Nếu bạn muốn nối các bảng đó sao cho truy vấn kết hợp các bản ghi từ các bảng này, ngoại trừ bản ghi từ một trong hai bảng nếu không có bản ghi tương ứng trong bảng còn lại, mệnh đề FROM của bạn có thể có dạng như sau (đã thêm ngắt dòng ở đây để cho dễ đọc):

FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

Trong Access, các phép toán nối xảy ra trong mệnh đề FROM của một câu lệnh SELECT. Có hai loại nối: nối trong và nối ngoài. Các mục sau đây giải thích hai loại nối này.

Nối trong

Nối trong là loại nối phổ biến nhất. Khi chạy truy vấn có phép nối trong, chỉ những bản ghi trong đó tồn tại một giá trị chung trong cả hai bảng được nối sẽ được tích hợp trong kết quả truy vấn.

Phép nối trong có cú pháp như sau (đã thêm ngắt dòng ở đây để cho dễ đọc):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

Bảng sau đây mô tả các phần khác nhau của phép toán INNER JOIN.

Phần

Mô tả

table1, table2

Tên của bảng mà bản ghi được kết hợp từ đó.

field1, field2

Tên của trường được nối. Nếu các trường đó không phải ở dạng số thì chúng phải có cùng kiểu dữ liệu và chứa cùng kiểu dữ liệu nhưng không cần phải có cùng tên.

compopr

Bất kỳ toán tử so sánh quan hệ nào: "=," "<," ">," "<=," ">=," hoặc "<>."

Nối ngoài

Nối ngoài tương tự như nối trong ở chỗ các phép nối này cho truy vấn biết cách kết hợp các thông tin từ hai nguồn. Nối ngoài khác ở chỗ các phép nối này cũng cho biết có nên đưa dữ liệu vào nơi không tồn tại giá trị chung hay không. Nối ngoài mang tính định hướng: bạn có thể xác định có bao gồm tất cả bản ghi từ nguồn dữ liệu thứ nhất đã xác định trong phép nối (được gọi là nối trái) không, hay bao gồm tất cả bản ghi từ nguồn dữ liệu thứ hai trong phép nối (được gọi là nối phải).

Phép nối ngoài có cú pháp như sau:

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1compopr table2.field2

Bảng sau đây mô tả các phần khác nhau của phép toán LEFT JOIN và RIGHT JOIN.

Phần

Mô tả

table1, table2

Tên của bảng mà bản ghi được kết hợp từ đó.

field1, field2

Tên của trường được nối. Các trường cần phải có cùng kiểu dữ liệu và chứa cùng kiểu dữ liệu nhưng không nhất thiết phải có cùng tên.

compopr

Bất kỳ toán tử so sánh quan hệ nào: "=," "<," ">," "<=," ">=," hoặc "<>."

Để biết thêm thông tin về các phép nối, hãy xem bài viết Nối bảng và truy vấn.

Đầu Trang

Phát triển các kỹ năng của bạn
Khám phá nội dung đào tạo
Sở hữu tính năng mới đầu tiên
Tham gia Người dùng nội bộ Office

Thông tin này có hữu ích không?

Cảm ơn phản hồi của bạn!

Cảm ơn bạn đã phản hồi! Để trợ giúp tốt hơn, có lẽ chúng tôi sẽ kết nối bạn với một trong những nhân viên hỗ trợ Office của chúng tôi.

×