получить имя каждого поля таблицы sql - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь выполнить простой запрос, но не могу получить желаемые результаты.

У меня есть таблица BATTLE с двумя ссылочными идентификаторами.я хочу получить в одном ряду имя каждого героя на основе другой таблицы HERO

BATTLE

  • id
  • hero1_id
  • hero2_id

HERO

  • id
  • name

Я делаю этот запрос

SELECT 
  battle.character1_id as p1,
  character.name,
  battle.character2_id as p2,
  character.name
FROM 
 battle, 
 character 
WHERE 
 character.id in (character1_id, character2_id)

Но я получаю два ряда в бою.Я знаю, что делаю что-то не так, но не знаю что?

result

1 Ответ

0 голосов
/ 09 июня 2018

Вам необходимо присоединиться battle к таблице hero дважды, по одному разу здесь:

SELECT h1.id AS id1, h1.name AS name1, h2.id AS id2, h2.name AS name2
FROM   battle b
JOIN   hero h1 ON h1.id = b.hero1_id
JOIN   hero h2 ON h2.id = b.hero2_id
...