0

所以这是我的问题。我有三张桌子:

人表

person_id, name

事件表

event_id, event_name, event_date

比赛表

match_id, person_a, person_b, winner, event

所以在matches表中,person_a、person_b和winner是对应Person表中person_id的整数。

如果我从 Matches 表中拉入一行,结果会是这样的:

1, 1, 2, 1, Chess Tournament #33

如何使用 Person 表查找这 3 个字段(person_a、person_b 和 Winner)以提取他们的实际姓名,以便得到结果?

1, John, Steven, John, Chess Tournament #33

我考虑加入这两个表,但这没有意义,因为我不能只做 ON id=id 或 WHERE id=id。我很感激任何帮助。

4

1 回答 1

4
SELECT
  Matches.match_id AS match_id,
  PersA.name AS persa_name,
  PersB.name AS persb_name,
  IF(winner=person_a,PersA.name,PersB.name) AS winner_name,
  Events.event_name AS event_name
FROM
  Matches
  INNER JOIN Person AS PersA ON Matches.person_a=PersA.person_id
  INNER JOIN Person AS PersB ON Matches.person_b=PersB.person_id
  INNER JOIN Events ON Matches.event=Events.event_id
WHERE
  -- whatever
于 2012-06-02T23:55:41.543 回答