Khái niệm về mệnh đề JOIN

Một phần của tài liệu Giới thiệu về PHP (Ngôn ngữ lập trình) (Trang 112 - 113)

I- With Grant Option

5. PHẮT BIỂU SQL

6.2. Khái niệm về mệnh đề JOIN

Trong hầu h ế t p h á t biểu SE LE C T, phần lớn k ết quả m à bạn mong muốn lấy về đều có liên quan đến m ột hoặc nhiều bảng khác nhau. Trong trường hợp như vậy, khi truy vấn dữ liệu bạn cần sử dụng m ệnh đề J O IN để k ế t hợp dữ liệu trê n hai hay nhiều bảng lại với nhau.

Khi sử dụng JO IN , bạn cần quan tâm đến trường (cột) nào trong bảng thứ n h ấ t có quan hệ với trường (cột) nào trong báng thứ hai. Nếu mô hình quan hệ của bạn không tối ưu hay không đúng, quản trìn h sử dụng J O IN sẽ cho k ết quả trả về không như ý muốn.

Trở lại ứng dụng bán hàng qua m ạng trong giáo trìn h này, khi xuất m ột hợp đồng bán hàng cho khách hàng, theo th iế t k ế trong cơ sở dữ liệu chúng ta có r ấ t nhiều bảng liên quan đến nhau.

Chẳng hạn, nếu quan tâm bán h àng thì bán cho ai. Suy ra, liên quan đến thông tin khách hàng, bán sản phẩm gì cho họ th ì liên quan đến m ã sản phẩm , nếu khách hàng trả tiề n th ì liên quan đến phiếu thu, nếu khách hàng có công nợ thì liên quan đến nợ kỳ trước...

Trong p hân này, chúng tôi tiếp tục th iế t k ế m ột số bảng dữ liệu cùng với kiểu dữ liệu tương ứng và quan hệ giữa các bảng được mô tả như sau:

tblCustomers (danh sách khách hàng)

[CustID] int auto_increment Primary key, [CustName] [varchar] (50) NULL ,

[Address] [varchar] (100) NULL, [Tel] [varchar] (20) NULL, [FaxNo] [varchar] (20) NULL, [Email] [varchar] (50) NULL, [Contact] [varchar] (50) NULL [Country] [varchar] (3) NULL, [Province] [varchar] (3) NULL

tblO rders (Hợp đồng bán hàng)

[OrderlD] [int] Not null

auto_increment Primary Key, [OrderDate] [date] NULL ,

[CustID] int ,

[Description] [varchar] (200) NULL , [ShipCost] [float] NULL ,

[TranID] [tinyint] NULL , [PaymentID] [tinyint] NULL , [Anount] [float] NULL , [TotalAmount] [float] NULL ,

tblO rderD etails (Hợp đồng bán h àng chi tiết)

[SubID] [int] auto_increment NOT NULL , [OrderlD] int ,

[ItemID] int, [No] int,

[Qtty] [int] NULL , [Price] int NULL ,

[Discount] [Float] NULL , [Anount] [Float] NULL

tblltem s (Danh sách sản phẩm)

[ItemID] int auto_increment Prinary key, [ItemName] [varchar] (200) NULL ,

[Unit] [nvarchar] (20) NULL , [Cost] [Float] NULL ,

[Active] [tinyint] NOT NULL , [Category] int

Bạn có th ể tìm th ấy các bảng dữ liệu còn lại trong dữ liệu Test trong đĩa đính kèm theo sách.

Một phần của tài liệu Giới thiệu về PHP (Ngôn ngữ lập trình) (Trang 112 - 113)