Sử dụng JOIN – PHP & MySQL

PHP sử dụng hàm mysqli query () hoặc mysql_query () để lấy bản ghi từ nhiều bảng MySQL bằng JOIN. Hàm này nhận hai tham số và trả về TRUE nếu thành công hoặc FALSE nếu thất bại.

Cú pháp

$mysqli->query($sql,$resultmode)
STTMô tả thông số
1$sql
Bắt buộc – Truy vấn SQL để lấy bản ghi từ nhiều bảng bằng JOIN.
2$resultmode
Tùy chọn – Hằng số MYSQLI_USE_RESULT hoặc MYSQLI_STORE_RESULT tùy thuộc vào hành động mong muốn kết quả của bạn. Theo mặc định, MYSQLI_STORE_RESULT được sử dụng.

Đầu tiên, hãy tạo một bảng trong MySQL bằng cách sử dụng tập lệnh sau và thêm hai bản ghi vào bảng mới tạo này.

/* Tạo bảng mới tên tcount_tbl */
create table tcount_tbl(
   tutorial_author VARCHAR(40) NOT NULL,
   tutorial_count int
);
/* Thêm dữ liệu vào bảng tcount_tbl */
insert into tcount_tbl values('Vu Ba Phuong', 3);
insert into tcount_tbl values('Nguyen Van A', 1);

Ví dụ về sử dụng JOIN

Hãy thử ví dụ sau để lấy bản ghi từ hai bảng

Sao chép và dán ví dụ sau vào file mysql_example.php

<html>
   <head>
      <title>Selecting Records</title>
   </head>
   <body>
      <?php
         $dbhost = 'localhost';
         $dbuser = 'root';
         $dbpass = 'root@123';
         $dbname = 'TUTORIALS';
         $mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
         $tutorial_count = null;
         if($mysqli->connect_errno ) {
            printf("Connect failed: %s<br />", $mysqli->connect_error);
            exit();
         }
         echo 'Connected successfully<br />';
         
         // mysqli_select_db( $conn, 'mfsadmin_data' );
         $sql = "SELECT a.tutorial_id, a.tutorial_author, b.tutorial_count FROM tutorials_tbl a, tcount_tbl b WHERE a.tutorial_author = b.tutorial_author";
         $retval = mysqli_query( $conn, $sql );
         if(! $retval ) {
            die('Could not get data: ' . mysqli_error($conn));
         }
         
         while($row = $retval->fetch_assoc()) {
            echo "Tutorial ID :{$row['tutorial_id']},  ".
               "Title: {$row['tutorial_title']}, ".
               "Author: {$row['tutorial_author']}, ".
               "Count : {$row['tutorial_count']} ";
            echo '<br />';
         } 
         //echo "Fetched data successfully\n";
         mysqli_close($conn);
      ?>
   </body>
</html>

Dữ liệu đầu ra

Truy cập vào mysql_example.php được thực thi trên máy chủ web apache và kết quả đầu ra.

Connected successfully
Tutorial ID :1, Title: , Author: Vu Ba Phuong, Count : 3
Tutorial ID :2, Title: , Author: Vu Ba Phuong, Count : 3
Tutorial ID :3, Title: , Author: Vu Ba Phuong, Count : 3
Tutorial ID :5, Title: , Author: Nguyen Van A, Count : 1