PHP-da bir nechta avlodlar bilan qarindoshlik aloqalari
Oldingi darsda otada faqat bitta
o'g'il bo'lishi mumkin edi. Bunga erishish
otaning son_id aloqasiga ega bo'lishi
orqali amalga oshirilgan.
Endi otada bir nechta o'g'il bo'lishi mumkin deb faraz qilaylik.
Bunday holda biz hanuzgacha
faqat bitta jadval yaratishimiz mumkin, u o'ziga
o'zi bog'langan. Faqat aloqa maydonida
o'g'ilning idsini emas, balki otaning idsini
saqlaymiz. Bu holda
bir nechta foydalanuvchilar o'z otasiga
murojaat qilishi mumkin - va shu orqali otada bir nechta
o'g'il bo'ladi:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Foydalanuvchini uning otasi bilan birga olish quyidagicha amalga oshirilishi mumkin:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Faraz qilaylik, bizda foydalanuvchilar mavjud. Har bir foydalanuvchining otasi va onasi bor. Saqlash tuzilmasini tasvirlab bering.
Foydalanuvchini uning otasi va onasi bilan birga olib chiqadigan so'rov yozing.