Quan hệ nhiều-nhiều
Ví dụ chúng ta tạo ra hai bảng Student
và Subject
(môn học) trong đó mỗi học sinh có thể học nhiều môn. Và mỗi môn học thì có thể được nhiều người cùng học.
- Ta gọi bảng
Student
có mối quan hệbelongsToMany
với bảngSubject
. - Bảng
Subject
có mối quan hệbelongsToMany
với bảngStudent
.
Thiết kế bảng
Chúng ta cần thêm một bảng phụ để thiết kế. Bảng phụ chứa id của học sinh cùng với id của subject.
|
|
Truy vấn dữ liệu
Để lấy tên học sinh và môn học của học sinh đó chúng ta dùng JOIN ba bảng với nhau như sau:
|
|
Kết quả sẽ là:
+------------------------+-------------+ | name | subject | +------------------------+-------------+ | Nguyễn Ngọc Tuấn | Toán | | Nguyễn Ngọc Tuấn | Tiếng Anh | | Phan Thanh Bình | Ngữ Văn | | Phan Thanh Bình | Tiếng Anh | +------------------------+-------------+