T
T
TiNam2018-06-17 22:28:11
MySQL
TiNam, 2018-06-17 22:28:11

How to correctly compose a MYSQL query?

Всем привет. Столкнулся с небольшими сложностями с составлением 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`...) т.к. столбцов очень много, все мне не нужны. Спасибо.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
N
nozzy, 2018-06-18
@TiNam

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

T
ThunderCat, 2018-06-17
@ThunderCat Куратор тега MySQL

1) * parent_id
2) нестед сидс проще реализовать на клиенте

Вячеслав Беликов, 2018-06-21
@workless

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

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question