У меня есть два пользователя и родители.MySQL не извлекает пользователей, у которых есть пользовательский набор результатов
- Каждый пользователь имеет уникальный идентификатор и родительский идентификатор (это тот, кто направил его на сайт).
- Родитель идентификатор корневого пользователя 0.
- Пользователи, которые имеют тот же родительский идентификатор являются детская этого идентификатора
пользователи
идентификатор
имя
электронной
родители
идентификатор
ParentID
joiningAmount
я хочу запрос, в котором я дам идентификатор родителя. не
Этот запрос должен вернуть все его детей со следующей информацией
ID, имя, адрес электронной почты, joiningAmount (Нет в ДЕТСКО этот пользователь)
Можно ли это сделать в одном запрос?
Если нет, то как я должен нормализовать базу данных, чтобы завершить это в одном запросе.
Любая помощь очень ценится.
EDIT:
В таблице пользователей будет содержать всю информацию о пользователе
Пусть это таблица пользователей.
id name email 1 Admin [email protected] 2 John [email protected] 3 Larry [email protected] 4 Jone [email protected]
Регистрация возможна только по рефералу.
Поскольку администратор не ссылается ни на кого, его parentId равен 0.
Предположим, что admin относится к larry и john (таким образом, их родительские идентификаторы равны 1), а john приводит другого пользователя от своего реферала, чье имя его jone (таким образом, его родительский идентификатор john), тогда таблица родителей должна выглядеть так.
Сумма соединения может быть проигнорирована пока как ее просто часть приложения.
id parentId joinAmount 1 0 1000 2 1 1000 3 1 1000 4 2 1000
так что теперь я хочу запрос, к которому, если я передать идентификатор 1 (администраторов ид) он должен вернуть его детей
id, name, email, joiningAmount, (**No of Childrens this user has**) 2, John, [email protected], 1000, 1(as john has 1 child) 3, Larry, [email protected], 1000, 0
да, возможно. Посмотрите на 'LEFT JOIN' –
, можете ли вы предоставить мне sql? –
Эти две таблицы, я не вижу отношений. 'parentId' внутри' parents' немного рекурсивно и, похоже, не указывает на таблицу 'users' –