Friday, August 24, 2018

Sử dụng lệnh Select để kết nối giữa bảng PLOT (Lô rừng) và bảng FOREST_ACTOR (Chủ rừng)

Bài trước mình đã hướng dẫn mọi người cách kết nối giữa bảng PLOT (lô rừng) và bảng COMMUNE (xã) để lấy các trường thông tin từ 2 bảng này, trường khóa để kết nối giữa 2 bảng này với nhau là Commune_code (mã xã). Tương tự như vậy, mình tiếp tục hướng dẫn mọi người cách kết nối giữa bảng PLOT (lô rừng) và FOREST_ACTOR (chủ rừng) để lấy được thông tin của các 2 bảng này.

Đầu tiên chúng ta sẽ xem lại cấu trúc của 2 bảng PLOT và FOREST_ACTOR đã nhé, nắm được cấu trúc chúng ta mới có thể biết được lệnh kết nối được thực hiện giữa các trường khóa nào.

Cấu trúc bảng PLOT theo bảng tham chiếu sau:

Cấu trúc của bảng FOREST_ACTOR như sau:
- commune_code: mã chủ rừng
- actor_id: mã chủ rừng
- actor_type_code: mã loại chủ rừng
- actor_name: tên chủ rừng.

Nhìn vào cấu trúc của 2 bảng PLOT và FOREST_ACTOR ta thấy chúng được liên kết với nhau qua 2 trường: commune_code actor_id

Vậy lệnh select để kết nối 2 bảng được viết như sau:

Select a.commune_code as maxa,
a.compt_code as tieukhu,
a.sub_compt_code as khoanh,
a.plot_code as lo,
a.area as dientich,
a.forest_type_code as maldlr, 
a.actor_id as machurung,
b.actor_name as tenchurung
From PLOT a inner join FOREST_ACTOR b on a.commune_code=b.commune_code and a.actor_id=b.actor_id
order by a.area

Giải thích lệnh:
Lọc ra các trường mã xã, tiểu khu, khoảnh, lô, diên tích, mã LĐLR, mã chủ rừng (thuộc bảng PLOT), tên chủ rừng (thuộc bảng FOREST_ACTOR) từ bảng PLOT kết nối với bảng FOREST_ACTOR thông qua 2 trường commune_code và actor_id. 
Sắp xếp tăng dần theo giá trị của trường diện tích thuộc bảng PLOT.

vào pgAdmin3 mở cửa sổ lệnh SQL đánh vào thử xem nhé.

Kết quả thực thi lệnh.


Với kết quả trên, bây giờ chúng ta thử kết nối 3 bảng PLOT (lô rừng) - COMMUNE (xã) - FOREST_ACTOR (chủ rừng) xem nhé.

Select a.commune_code as maxa,
a.compt_code as tieukhu,
a.sub_compt_code as khoanh,
a.plot_code as lo,
a.area as dientich,
a.forest_type_code as maldlr, 
a.actor_id as machurung,
b.actor_name as tenchurung,
c.name as tenxa
From (PLOT a inner join FOREST_ACTOR b on a.commune_code=b.commune_code and a.actor_id=b.actor_id)
inner join COMMUNE c on a.commune_code=c.commune_code
order by a.area

Gõ vào cửa sổ lệnh SQL và thực thi nhé.
Kết quả thực thi lệnh.

OK, như vậy chúng ta thấy việc kết nối giữa các bảng trong cơ sở dữ liệu không không phải quá khó, quan trong là chúng ta phải tìm được các trường khóa kết nối và thuộc cú pháp lệnh select. Hãy thực hành nhiều vào nhé.


Nếu thấy hữu ích hảy chia sẻ bài viết này trên:  

0 nhận xét:

Post a Comment