1

次のテーブルがあります。

チーム

+------+--------------+--------------+
| id   |  team_name   |  team_code   |
+------+--------------+--------------+
|  1   |  Wales       | WAL          |
|  2   |  England     | ENG          |
|  3   |  New Zealand | NZL          |
+------+--------------+--------------+

マッチ

+------+-----------+-----------+
| id   |  team_a   |  team_b   |
+------+-----------+-----------+
|  1   |  WAL      | ENG       |
|  2   |  ENG      | NZL       |
|  3   |  WAL      | NZL       |
+------+-----------+-----------+

Matched.id結合がどのように機能するかは知っていますが、データベースから両方のチームのチーム名を取得するためにデータベースにクエリを実行する方法がわかりませんTeams。もっとよく説明しましょう

  • 試合ごとに、チーム名を決定する必要があります
  • で問い合わせますMatches.id
  • マッチの場合: 1 「ウェールズ」と「イングランド」を選択する必要があります

問題を十分に明確に説明したことを願っていますが、まだ説明していない場合は、お気軽にさらに質問してください

4

3 に答える 3

6

データベース構造は私には「オフ」のようです。

テーブルの主キーへの外部キーとしてteam_aとの両方が必要です。team_bTeams

その後、ID に (2 回) 参加してフルネームを取得できます。

一致:

+------+-----------+-----------+
| id   |  team_a   |  team_b   |
+------+-----------+-----------+
|  1   |  1        | 2         |
|  2   |  2        | 3         |
|  3   |  1        | 3         |
+------+-----------+-----------+

SELECT T1.team_name, T2.team_name
FROM Matches M
  INNER JOIN Teams T1
    ON M.team_a = T1.id
  INNER JOIN Teams T2
    ON M.team_b = T2.id
WHERE M.id = 1
于 2012-09-18T19:47:04.677 に答える
1
Select
    matches.*, 
    teamA.team_name as TeamA_Name, 
    teamB.team_name as TeamB_Name
from matches
   inner join teams teamA on matches.team_a = TeamA.team_code
   inner join teams teamB on matches.team_b = TeamB.team_code
where 
   matches.id = 1
于 2012-09-18T19:47:31.823 に答える
0
select 
    m.id, 
    t1.team_name, 
    t2.team_name
from 
    Matches m
    inner join Teams t1 on m.team_a = t1.team_code
    inner join Teams t2 on m.team_b = t2.team_code
于 2012-09-18T19:50:10.623 に答える