Thứ Hai, 22 tháng 6, 2015

Liên kết bảng trong MySQL (P.1)

Trong quá trình thao tác với cơ sở dữ liệu khi hoc PHP, đôi khi chúng ta gặp phải trường hợp muốn lấy dữ liệu từ nhiều bảng có chung một tiêu chí. Khi đó chúng ta sẽ sử dụng cú pháp liên kết bảng trong MySQL để liên kết những bảng đó theo cùng một tiêu chí mà ta đặt ra.

Phần 1: Liên kết bảng trong MySQL sử dụng câu lệnh mysql.

Để liên kết các bảng trong cơ sở dữ liệu ta sử dụng câu lệnh INNER JOIN.

Cú pháp
SELECT trường_dữ_liệu_1, trường_dữ_liệu_2,... FROM bảng_1 INNER JOIN bảng_2 ON tiêu_chí

Trong đó:

  • bảng_1: là bảng liên kết.
  • bảng_2: là bảng bị liên kết.
  • trường_dữ_liệu: là các trường dữ liệu muốn lấy.
  • tiêu_chí: là tiêu chí chung để liên kết 2 bảng.


Để hiểu rõ hơn về liên kết trong MySQL chúng ta sẽ đi làm một ví dụ cụ thể như sau:

Ví dụ:

Bước 1: Tạo 2 bảng có tên là khach_hang và don_hang. Quá trình tạo bảng các bạn có thể tham khảo phần tạo bảng trong MySQL

Với bảng khach_hang bao gồm các trường dữ liệu:
 idCustomer
Name
Phone

Với bảng don_hang bao gồm các trường dữ liệu:
id
idCustomer
Products
ADDR
* Lưu ý : Các bạn tùy ý thêm dữ liệu vào bảng để thực hiện kiểm tra bằng bước 2.

Bước 2: Lấy tất cả thông tin trong 2 bảng trên của cùng một khách hàng.

<?php
 $host = 'localhost';
 $user = 'root';
 $pass = '';
 $dbName = 'mydb';
 $conn = mysql_connect($host, $user, $pass);
 mysql_select_db($dbName);
 $sql = "SELECT * FROM khach_hang INNER JOIN don_hang ON khach_hang.idCustomer = don_hang.idCustomer";
 $query = mysql_query($sql);
 if(mysql_num_rows($query) > 0){
  while($row = mysql_fetch_array($query)){
     echo $row['idCustomer']."<br />".
         $row['name']."<br />".
         $row['phone']."<br />".
         $row['products']."<br />" .
         $row['addr']."<br />"
   ;
  }
 }else{
    echo "Không có thông tin của khách hàng!";
 }
 mysql_close($conn);
?>
 Xem tiếp: Liên kết bảng trong MySQL bằng MySQLi (P.2)

SHARE THIS

0 nhận xét:

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.