Как правильно составить запрос MYSQL?

Всем привет. Столкнулся с небольшими сложностями с составлением sql запроса. Есть таблица, в ней куча столбцов, необходимо верно сформулировать запрос к mysql.

id | parrent_id | email | password
4 | NULL | four.mail.ru | password
7 | NULL | seven.mail.ru | password
8 | 4 | eight.mail.ru | password
9 | 4 | nine.mail.ru | password
10 | 7 | ten.mail.ru | password
11 | 4 | eleven.mail.ru | password

Задача, вывести все строки которые в качестве параметра parrent_id содержат какое-то значение(не null), но нужна зависимость со значением родителя. Пример необходимых записей:

parrent_email | email | password
four.mail.ru | eight.mail.ru | password
four.mail.ru | nine.mail.ru | password
seven.mail.ru | nine.mail.ru | password
four.mail.ru | eleven.mail.ru | password

Вывод нужно сделать именно с помощью перечисления необходимых столбцов( Select `email`, `password`...) т.к. столбцов очень много, все мне не нужны. Спасибо.
  • Вопрос задан
  • 347 просмотров
Решения вопроса 1
@nozzy
Symfony, Laravel, SQL
select 
t1.email as parent_email,
t2.email as email,
t2.password as password
from my_table t1
left join (
	select
	parrent_id, 
	email,
	password
	from my_table
	where parrent_id is not null
) t2 on t2.parrent_id = t1.parrent_id
where t1.parrent_id is null
order by t1.email
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега MySQL
{PHP, MySql, HTML, JS, CSS} developer
1) * parent_id
2) нестед сидс проще реализовать на клиенте
Ответ написан
Комментировать
SELECT
t1.email AS email,
parent.email AS parent_email,
t1.password AS password
FROM my_table t1
INNER JOIN my_table parent ON t1.parrent_id = parent.id
ORDER BY t1.email
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы