Top.Mail.Ru
Ответы

Mysql вывод имени по id

Имеются таблицы user(id,name),ref(name,ref).
users:
id=1,name=jon
id=2,name=bob
id=3,name=leo
ref:
name=2,ref=1
name=3,ref=2
Нужно при выборе получить имена пользователей
name ref
bob jon
leo jon
но пока что получилось получить только name,ref получаю цифрой. Делаю так SELECT `users`.`name`,`ref`.`ref` FROM `user` `user` LEFT JOIN `ref` `ref` ON `ref`.`name` = `user`.`id` WHERE `user`.`id` = '1';Помогите допилить запрос

По дате
По рейтингу
Аватар пользователя
Мудрец
11лет

тут надо не допиливать, а всё выкинуть и написать правильно
select u1.name, u2.name ref
from ref r
join users u1 on u1.id = r.name
join users u2 on u2.id = r.ref

Аватар пользователя
Ученик
11лет

u2.name ref это ref это таблица или поле?

Аватар пользователя
Мыслитель
11лет

если в ref есть хотя бы одна запись для каждого name (или нам не нужно выводить name, для которых нет ref), то:

select u1.name name, u2.name ref
from user u1, ref r, user u2
where u1.id=r.name and u2.id=r.ref;



Видео по теме