Как получить имя на основе идентификатора в той же строке? - PullRequest
0 голосов
/ 23 июня 2019

Итак, я новичок в mySQl и пытаюсь выучить его.Я хочу получить имя шеф-повара Джонса.Итак, Джону Шефнру 100 лет. Я хочу сделать запрос, в котором в качестве вывода я получу имя шеф-повара Фрэнка.Как мне это сделать?Помощь приветствуется!

+-----+-------+--------+
| eNr | name  | chefNr |
+-----+-------+--------+
| 120 | John  | 100    |
+-----+-------+--------+
| 100 | Frank | 200    |
+-----+-------+--------+

Ответы [ 2 ]

0 голосов
/ 23 июня 2019

Вам необходимо объединение, которое включает в себя одну и ту же таблицу два раза ..

select  a.name as chefname 
from  my_table a 
inner join  my_table b on a.eNr = b.cheNr 
where  b.name is  'John'

или использование chefNr

select  a.name as chefname 
from  my_table a 
inner join  my_table b on a.eNr = b.cheNr 
where  b.chefNr = 100
0 голосов
/ 23 июня 2019

Этот запрос:

select chefnr from tablename where name = 'John'

вернет 100 в столбец chefnr.
Вы можете использовать это так:

select name from tablename
where enr = (select chefnr from tablename where name = 'John')

чтобы получить имя шеф-повара Джона.
См. демо .
Результат:

| name  |
| ----- |
| Frank |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...