Вам необходимо уточнить ожидаемые результаты: почему вы ожидаете, что появится Зак (ic=1234
), а не Нур или Айся?Никто из этих 3-х пользователей нигде в вашей таблице applicant_childrens
.Из того, как я понимаю твою логику, может показаться, что должно появиться только имя Амрана.
Я думаю, вам нужно начать с выбора с applicant_children
, а затем с LEFT JOIN
ing до applicants
дважды: один раз для родителя и один раз для родителя.
Делая что-то вроде этого:
SELECT
parent.`id` AS applicant_id,
parent.`name`,
parent.`ic`,
parent.`address`,
ac.`id` AS ac_id,
parent.`ic` AS ic_parent,
child.`ic` AS ic_children
FROM applicant_childrens ac
LEFT JOIN applicants parent ON
parent.ic = ac.ic_parent
LEFT JOIN applicants child ON
child.ic = ac.ic_children
дает такие результаты:
applicant_id name ic address ac_id ic_parent ic_children
1 Amran 5115 KL 1 5115 1156
1 Amran 5115 KL 2 5115 8701
Обратите внимание, что запись 2 из вашей таблицы applicants
не отображается.Опять же, вам нужно уточнить, почему вы этого ожидаете.