@khodos_dmitry

Как правильно составить многоуровневый запрос к mysql?

В таблице с матчем два боксера с id на таблицу их профилей, оттуда идут id на таблицу команд боксеров. Как правильно выбрать поединок, данные двух боксеров и данные их команд?
И правильная ли такая организация БД?
  • Вопрос задан
  • 198 просмотров
Решения вопроса 1
Urvin
@Urvin
SELECT
  f1.name,
  t1.name,
  f2.name,
  t2.name,
  battle.date
FROM battle
  JOIN fighters f1 ON fighter_1 = f1.id
  JOIN fighters f2 ON fighter_2 = f2.id
  JOIN teams t1 ON f1.team = t1.id
  JOIN teams t2 ON t2.team = t2.id
WHERE
  battle_id = 1


И правильная ли такая организация БД?

Почти. Я бы не стал хранить поля fighter_1 и fighter_2, а перенес бы связь бойцов с матчами в промежуточную таблицу battle_fighters(id, battle, fighter), классически реализовав связь «многие ко многим».
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы