Tham gia ba bảng trong php

OrderIDCustomerIDEemployeeIDOrderDateShipperID10308271996-09-183103093731996-09-191103107781996-09-202

Và một lựa chọn từ bảng "Khách hàng"

ID khách hàng Tên khách hàng Tên liên hệĐịa chỉThành phốMã bưu chínhQuốc gia1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Đức2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222Mexico D. F. 05021Mexico3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D. F. 05023Mexico



SQL INNER THAM GIA Ví dụ

Câu lệnh SQL sau chọn tất cả các đơn hàng có thông tin khách hàng

Ví dụ

CHỌN Đơn đặt hàng. OrderID, khách hàng. Tên khách hàng
TỪ đơn hàng
INNER THAM GIA KHÁCH HÀNG TRÊN đơn hàng. ID khách hàng = Khách hàng. ID khách hàng;

Tự mình thử »

Ghi chú. Từ khóa INNER JOIN chọn tất cả các hàng từ cả hai bảng miễn là có sự trùng khớp giữa các cột. Nếu có các bản ghi trong bảng "Đơn hàng" không khớp với "Khách hàng", các đơn hàng này sẽ không được hiển thị


THAM GIA Ba bàn

Câu lệnh SQL sau chọn tất cả các đơn đặt hàng có thông tin khách hàng và người giao hàng

Ví dụ

CHỌN Đơn đặt hàng. OrderID, khách hàng. Tên khách hàng, Người gửi hàng. ShipperName
FROM ((Đơn hàng
INNER THAM GIA KHÁCH HÀNG TRÊN Đơn hàng. ID khách hàng = Khách hàng. CustomerID)
INNER JOIN Chủ hàng BẬT Đơn đặt hàng. ShipperID = Người gửi hàng. ID người gửi);

Tự mình thử »


Kiểm tra bản thân với các bài tập

Tập thể dục

Chọn mệnh đề JOIN đúng để chọn tất cả các bản ghi từ hai bảng có sự trùng khớp trong cả hai bảng

Trong MySQL, INNER JOIN chọn tất cả các hàng từ cả hai bảng tham gia để xuất hiện trong kết quả khi và chỉ khi cả hai bảng đáp ứng các điều kiện được chỉ định trong mệnh đề ON. THAM GIA, CHÉO THAM GIA và INNER THAM GIA là tương đương về mặt cú pháp. Trong SQL tiêu chuẩn, chúng không tương đương. INNER JOIN được sử dụng với mệnh đề ON, CROSS JOIN được sử dụng nếu không

Trình bày bằng hình ảnh của MySQL INNER JOIN

Tham gia ba bảng trong php

MySQL INNER THAM GIA Cú pháp

MySQL hỗ trợ các cú pháp JOIN sau cho table_references (Một tham chiếu bảng còn được gọi là biểu thức nối. ) một phần của câu lệnh CHỌN và câu lệnh CẬP NHẬT và XÓA nhiều bảng

table_references:
    escaped_table_reference [, escaped_table_reference] ...

escaped_table_reference:
    table_reference
  | { OJ table_reference }

table_reference:
    table_factor
  | join_table

table_factor:
    tbl_name [PARTITION (partition_names)] 
        [[AS] alias] [index_hint_list]
  | table_subquery [AS] alias
  | ( table_references )

join_table:
    table_reference [INNER | CROSS] JOIN table_factor [join_condition]
  | table_reference STRAIGHT_JOIN table_factor
  | table_reference STRAIGHT_JOIN table_factor ON conditional_expr
  | table_reference {LEFT|RIGHT} [OUTER] JOIN table_reference join_condition
  | table_reference NATURAL [{LEFT|RIGHT} [OUTER]] JOIN table_factor

join_condition:
    ON conditional_expr
  | USING (column_list)

index_hint_list:
    index_hint [, index_hint] ...

index_hint:
    USE {INDEX|KEY}
      [FOR {JOIN|ORDER BY|GROUP BY}] ([index_list])
  | IGNORE {INDEX|KEY}
      [FOR {JOIN|ORDER BY|GROUP BY}] (index_list)
  | FORCE {INDEX|KEY}
      [FOR {JOIN|ORDER BY|GROUP BY}] (index_list)

index_list:
    index_name [, index_name] ...

Ví dụ. MySQL INNER THAM GIA

Khi kết hợp các bản ghi từ nhiều bảng, người dùng cần chỉ ra cách khớp các bản ghi trong một bảng với các bản ghi trong bảng khác. Vì cả hai bảng đều có cột cate_id nên chúng ta có thể so khớp bằng cột đó. Mệnh đề ON được sử dụng để khớp các bản ghi trong hai bảng, dựa trên giá trị của cột cate_id. Cách sử dụng INNER JOIN kết hợp các bảng. INNER JOIN cho phép các hàng từ một trong hai bảng xuất hiện trong kết quả khi và chỉ khi cả hai bảng đáp ứng các điều kiện được chỉ định trong mệnh đề ON

Trong ví dụ này, mệnh đề ON chỉ định rằng cột cate_id của cả bảng book_mast và danh mục phải khớp với nhau. Nếu cate_id không xuất hiện trong cả hai bảng, thì hàng đó sẽ không xuất hiện trong kết quả vì điều kiện trong mệnh đề ON không thành công. Chỉ những danh mục đó mới tham gia THAM GIA có sách được viết bằng TIẾNG ANH

Mã số

SELECT book_mast.book_id,book_mast.book_name,cate_descrip           
FROM book_mast 
INNER JOIN category          
ON book_mast.cate_id=category.cate_id        
WHERE book_mast.pub_lang="English";

Biểu thức đại số quan hệ

Tham gia ba bảng trong php

Cây đại số quan hệ

Tham gia ba bảng trong php

bảng mẫu. book_mast


bảng mẫu. thể loại


Đầu ra mẫu

mysql> SELECT book_mast.book_id,book_mast.book_name,cate_descrip           
    -> FROM book_mast 
    -> INNER JOIN category          
    -> ON book_mast.cate_id=category.cate_id        
    -> WHERE book_mast.pub_lang="English";
+---------+-------------------------------------+--------------+
| book_id | book_name                           | cate_descrip |
+---------+-------------------------------------+--------------+
| BK001   | Introduction to Electrodynamics     | Science      | 
| BK002   | Understanding of Steel Construction | Technology   | 
| BK004   | Transfer  of Heat and Mass          | Technology   | 
| BK010   | Fundamentals of Thermodynamics      | Technology   | 
| BK012   | The Nature  of World                | Nature       | 
| BK009   | Mental Health Nursing               | Medical      | 
+---------+-------------------------------------+--------------+
6 rows in set (0.04 sec)

tập lệnh PHP






example-inner-join-with-multiple-tables php mysql examples | w3resource




List of the book ids, name of the book and category description:

query('SELECT book_mast.book_id,book_mast.book_name,cate_descrip FROM book_mast INNER JOIN category ON book_mast.cate_id=category.cate_id WHERE book_mast.pub_lang="English"') as $row) { echo ""; echo ""; echo ""; echo ""; echo ""; } ?>
Book IDName of the bookCategory description
" . $row['book_id'] . "" . $row['book_name'] . "" . $row['cate_descrip'] . "

Xem ví dụ trong trình duyệt

Ví dụ. MySQL INNER THAM GIA với bí danh

Câu lệnh MySQL sau trả về id sách, tên sách, id nhà xuất bản, mô tả danh mục và ngôn ngữ của nhà xuất bản, trong đó ngôn ngữ của nhà xuất bản là tiếng Anh và id của nhà xuất bản không bằng P004. Lưu ý rằng các bí danh đã được sử dụng để chỉ các tên cột. INNER THAM GIA được thực hiện dựa trên điều kiện id danh mục trong bảng book_mast cũng phải tồn tại trong bảng danh mục

Mã số

SELECT bk.book_id,bk.book_name,bk.pub_id,ca.cate_descrip,bk.pub_lang 
FROM book_mast AS bk
INNER JOIN category AS ca  ON bk.cate_id=ca.cate_id  AND
bk.pub_lang="English" AND bk.pub_id<>'P004';

Biểu thức đại số quan hệ

Tham gia ba bảng trong php

Cây đại số quan hệ

Tham gia ba bảng trong php

bảng mẫu. book_mast


Đầu ra mẫu

mysql> SELECT bk.book_id,bk.book_name,bk.pub_id,ca.cate_descrip,bk.pub_lang 
    -> FROM book_mast AS bk
    -> INNER JOIN category AS ca  ON bk.cate_id=ca.cate_id  AND
    -> bk.pub_lang='English' AND bk.pub_id<>'P004';
+---------+-------------------------------------+--------+--------------+----------+
| book_id | book_name                           | pub_id | cate_descrip | pub_lang |
+---------+-------------------------------------+--------+--------------+----------+
| BK001   | Introduction to Electrodynamics     | P003   | Science      | English  | 
| BK002   | Understanding of Steel Construction | P001   | Technology   | English  | 
| BK010   | Fundamentals of Thermodynamics      | P007   | Technology   | English  | 
| BK012   | The Nature  of World                | P008   | Nature       | English  | 
| BK009   | Mental Health Nursing               | P007   | Medical      | English  | 
+---------+-------------------------------------+--------+--------------+----------+
5 rows in set (0.00 sec)

MySQL INNER JOIN sử dụng ba bảng

bảng mẫu

table - doctors
+-------+---------+
| docid | dname   |
+-------+---------+
|     1 | A.VARMA | 
|     2 | D.GOMES | 
+-------+---------+


table - specialize
+------+----------+-------+
| spid | desc     | docid |
+------+----------+-------+
|    1 | special1 |     1 | 
|    2 | special2 |     2 | 
+------+----------+-------+


table - timeschedule
+-----+------+----------+-------+
| tid | tday | sit_time | docid |
+-----+------+----------+-------+
|   1 | MON  | 17:00:00 |     1 | 
|   2 | WED  | 08:00:00 |     1 | 
|   3 | TUE  | 16:00:00 |     2 | 
|   4 | FRI  | 09:00:00 |     2 | 
+-----+------+----------+-------+

Các bảng trên có liên quan với nhau. Trong các bảng bác sĩ, chuyên khoa và thời gian biểu, docid, spid và tid là khóa chính liên tiếp. Docid trong bảng chuyên môn và bảng thời gian biểu là một khóa ngoại, là tham chiếu đến khóa chính docid của bảng bác sĩ

Nếu chúng tôi muốn tất cả các bản ghi cho một bác sĩ chuyên khoa đặc biệt1 và ngồi trong buồng của anh ấy vào Thứ Tư (WED) trong thời gian lịch trình của anh ấy, SQL sau có thể được sử dụng-

Chúng ta có thể tham gia 3 bàn không?

Có thể sử dụng nhiều câu lệnh nối cùng nhau để nối nhiều bảng cùng lúc . Để làm điều đó, bạn thêm câu lệnh INNER JOIN thứ hai và câu lệnh ON thứ hai để chỉ ra bảng thứ ba và mối quan hệ thứ hai.

Bạn có thể kết hợp 3 bảng trong SQL không?

Kết luận. Có thể kết hợp nhiều bảng thành một bảng lớn theo cả 3 cách . Như chúng ta đã thấy, hành vi của UNION trong SQL Server và UNION trong DAX trong Power BI là rất giống nhau.

Làm thế nào tôi có thể tham gia 3 bảng mà không cần tham gia?

Cách nối các bảng trong SQL mà không cần sử dụng THAM GIA .
Sử dụng dấu phẩy giữa các tên bảng trong mệnh đề TỪ và chỉ định điều kiện nối trong mệnh đề WHERE
Sử dụng UNION / UNION ALL