PHP-те бірнеше ұрпақтың туыстық байланыстары
Алдыңғы сабақта әкеде тек бір ғана ұл
болуы мүмкін еді. Бұл әкеде
son_id байланысы болуы арқылы
жүзеге асырылды.
Енді әкеде бірнеше ұл болуы мүмкін делік.
Бұл жағдайда біз әлі де тек бір кесте
жасай аламыз, ол өзімен-өзі байланысады.
Тек байланыс өрісінде ұлдың id
енді сақтамаймыз, ал id әкесін сақтаймыз. Бұл
жағдайда бірнеше пайдаланушы өз әкесіне
сілтеме жасай алады - және осылайша әкеде бірнеше
ұл болады:
| id | name | father_id |
|---|---|---|
| 1 | user1 | 3 |
| 2 | user2 | 3 |
| 3 | user3 | 4 |
| 4 | user4 | null |
Пайдаланушыны оның әкесімен бірге алу келесі әдіспен мүмкін:
SELECT
users.name as user_name,
fathers.name as father_name
FROM
users
LEFT JOIN users as fathers ON fathers.id=users.father_id
Бізде пайдаланушылар бар делік. Әрбір пайдаланушының әкесі және анасы бар. Сақтау құрылымын сипаттаңыз.
Пайдаланушыны оның әкесі мен анасымен бірге алуға арналған сұраныс жазыңыз.