Quan hệ cha con với nhiều con trong Python
Trong bài học trước, 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ử người cha có thể có nhiều
con trai. Trong trường hợp này, chúng ta vẫn có thể
chỉ tạo một bảng duy nhất, bảng này 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 trai, mà là id
của người cha. Khi đó, nhiều người dùng có thể
tham chiếu đến cha của họ - và do đó
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 thông tin người dùng cùng với cha của họ 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 thông tin người dùng cùng với cha và mẹ của họ.