Other

Truy vấn dữ liệu !!!

Chào các bạn !!!

Không biết các bạn nghĩ sao nhưng riêng mình thì thực sự là đã được làm quen với truy vấn csdl mysql từ hồi năm 3 , tức là dc 1 năm rồi . Vậy mà hôm nay gặp 1 bài rất đơn giản mà mình phải mất một khoảng thời gian mới có thể giải quyết được .

Bài toán đặt ra như  thế này :

Cho 1 table : tbl_location(id,name,parent_id)

Giả sử dữ liệu ban đầu mình có như trên . Yêu cầu đặt ra ở bài toàn là bạn dùng câu lệnh truy vấn trong mysql để đưa ra được dữ liệu mã và tên các quận và thành phố của từng quận .


Bài toàn chỉ có thể mà vì đúng là cũng chưa gặp nên ban đầu hơi khó khăn tý . Vì từ trước giờ mình chưa hiểu tầm quan trọng của alias . Bài này nếu không sữ dụng alias thì có lẽ sẽ rất khó khăn .

Còn nếu sữ dụng alias thì có lẽ sẽ rất đơn giản :

SELECT lo.id AS ma, lo.name AS tenquan, lo_tmp.name AS tentp
FROM tbl_location AS lo
INNER JOIN tbl_location AS lo_tmp ON lo.parent_id = lo_tmp.id
WHERE lo.parent_id !=0

Câu lệnh truy vấn chỉ có thế là ta đã giải quyế được bài này .
Đây là một trường hợp đơn giản , trường hợp này các bạn cũng có thể sẽ gặp rất nhiều trong các dự án . Vì vậy chúng ta nên để ý . Tuy rất đơn giản nhưng sẽ rất hiệu quả nếu ta sử dụng tốt  nó .
Dưa vào phần đó ta có thể giải quyế một số bài toàn tương tự như :

Cho 2 table :

tbl_member(id,name,manager_id,department_id)

và tbl_department(id,name)

Yêu cầu là đưa ra dữ  liệu :

Ok .
Cơ bản là thế !!!

Chúc các bạn may mắn .

Writer by : KhanhTran

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s