Chào bạn, nếu bạn là thành viên xin đăng nhập (Quên mật khẩu?) nếu chưa bạn có thể đăng ký tài khoản mới.
Thông báo: Thành viên muốn đăng nhập ở trang chủ, vui lòng vào Diễn đàn đăng nhập, sau đó quay lại trang chủ.


Bài viết mới nhất

Tìm kiếm [Nâng cao]

Lấy thông tin chung từ 2 table ở cùng 1 DB

Người gửi: lyhuuloi

04/08/2005, 07:05 am
Trong bài viết này tôi sẽ trình bày cách lấy thông tin chung từ 2 table ở cùng 1 database (Đối với MySQL), hiểu được vấn đề này bạn sẽ tăng thêm được một kinh nghiệm về cách lấy dữ liệu.

Giả sử bạn có 1 table tên là users, trong đó bao gồm các fileds: id, name, password, email. Và 1 table tên là users_info, trong đó bao gồm các fields: user_id, user_group, user_address, user_phone.

* Các dòng của table users và table users_info trùng nhau. Tức là bên table users có 2 dòng thì ở table users_info cũng có 2 dòng.

Trong table users có:

id | name | password | email
1 | lyhuuloi | 123456 | lyhuuloi@lyhuuloi.com
2 | loihuuly | 654321 | loihuuly@loihuuly.com


Trong table users_info có:

user_id | user_group | user_address | user_phone
1 | admin | soctrang | 079 123 456
2 | minad | trangsoc | 970 321 654


* Bây giờ chúng ta sẽ tiến hành lấy thông tin của 2 field (trường): user_address, user_phone trong table users_info. Câu lệnh để lấy thông tin của user có id bằng 1 trong table users và table users_info:

SELECT U.*, UI.* FROM users AS U, users_info AS UI WHERE U.id='1' AND U.id = UI.user_id


Đầu tiên ta sẽ đặt tên khác cho table usersUusers_infoUI bằng cách sử dụng lệnh AS, đặt tên khác cho nó mục đích là nhằm giảm bớt sự phức tạp của câu lệnh.

Tiếp đến kiểm tra lại lệnh SELECT, điền tên field cần lấy thông tin (Dùng "*" để lấy tất cả các fields có trong table). Trong câu lệnh trên thay vì ta sẽ viết là "SELECT users.*, users_info.UI", nhưng ở phần sau (Sau lệnh FORM) đã đặt tên lại cho 2 tables này nên sẽ viết thành "SELECT U.*, UI.*".

Cuối cùng là lệnh WHERE nhằm xác định lại id của người cần lấy, ở đây lấy user có id bằng 1 nên sẽ viết là "U.id='1'". Tiếp tục viết "U.id=UI.user_id" để tìm kiếm xem trong UI.user_id có U.id nào bằng 1 không (vì ta đặt U.id=1 trước đó rồi còn gì) và dùng "AND" để kết hợp 2 đứa nó lại - Nếu có thì sẽ trả về thông tin của 2 field user_addressuser_phone lần lượt là: soctrang và 079 123 456.

lyhuuloi
(Bản quyền sanchoituoitre.vn)

Bài phản hồi

 Thống kê chung
Đang trực tuyến
106 khách, 4 thành viên.
Thông số
Tổng số bài viết đã đăng: 57,953
Tổng số thành viên: 109155
Thành viên mới nhất: Anh Tú
Kỷ lục số người trực tuyến: 521   [ 09/04/2008, 02:18 am ]
[Thời gian tải trang này là 0.362 giây] - [40 truy vấn] - [GZIP bật]