Mối quan hệ cha con với nhiều con trong PHP
Trong bài học trước, một người cha chỉ có thể có
một con trai. Điều này đạt được nhờ việc
người cha có liên kết son_id.
Bây giờ giả sử một người cha có thể có nhiều con trai.
Trong trường hợp này, chúng ta vẫn có thể tạo
chỉ một bảng, bảng đó sẽ liên kết
với chính nó. Chỉ khác là trong trường liên kết, chúng ta sẽ lưu trữ
không phải id của con, mà là id của cha. Trong trường hợp
này, nhiều người dùng có thể tham chiếu
đến cha của họ - và nhờ vậy, người cha sẽ có
nhiều con trai:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Có thể lấy người dùng cùng với cha của anh ta theo cách sau:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Giả sử chúng ta có những người dùng. Mỗi người dùng có một người cha và một người mẹ. Hãy mô tả cấu trúc lưu trữ.
Viết truy vấn lấy ra người dùng cùng với cha và mẹ của anh ta.