Khi Mục A có thể được liên kết với nhiều mục B và mục B có thể được liên kết với nhiều mục A. Điều này được gọi là Mối quan hệ nhiều với nhiều
Dữ liệu có mối quan hệ này nên được lưu trữ trong bảng riêng biệt và chỉ kết hợp với nhau khi truy vấn.
Kiểm tra
Bảng 1
| product_uid | price | amount |
| 1 | 12000 | 3000 |
| 2 | 30000 | 600 |
Bảng 2
| tag_uid | tag_value |
| 1 | tag_01 |
| 2 | tag_02 |
| 3 | tag_03 |
| 4 | tag_04 |
Sau đó, chúng tôi sử dụng một bảng nối để liên kết chúng
Bảng 3
| entry_uid | product_uid | tag_uid |
| 1 | 1 | 3 |
| 2 | 1 | 4 |
| 3 | 2 | 1 |
| 4 | 2 | 2 |
| 5 | 4 | 2 |
Truy vấn sẽ là (Nếu bạn muốn chọn mục một và thẻ)
SELECT t1.*, t2.tag_value
FROM Table1 as t1,
JOIN Table3 as join_table ON t1.product_uid = join_table.product_uid
JOIN Table2 as t2 ON t2.tag_uid = join_table.tag_uid
WHERE t1.product_uid = 1