これは私の最初の投稿ですが、私はここで多くの素晴らしい情報を取り入れて何年にもわたって読んでいます.
私の苦境を説明しようとしていますので、ご容赦ください。私がやろうとしていることの用語を本当に知らないので、質問にどのようにラベルを付けるかさえわかりませんでした. 私は PHP/MySQL の初心者です (これは私の質問を見ると痛々しいほど明白になります) が、熱心に学びたいと思っています。
とにかく、ここに行きます:
と という名前の 2 つのテーブルがGames
ありTeams
ます。
mysql> describe games;
+-----------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| homeTeam | int(11) | NO | | NULL | |
| awayTeam | int(11) | NO | | NULL | |
| homeScore | int(11) | NO | | NULL | |
| awayScore | int(11) | NO | | NULL | |
| homeOdds | decimal(10,2) | NO | | NULL | |
| drawOdds | decimal(10,2) | NO | | NULL | |
| awayOdds | decimal(10,2) | NO | | NULL | |
| gameDate | date | NO | | NULL | |
+-----------+---------------+------+-----+---------+----------------+
と
mysql> describe teams;
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| team | varchar(255) | NO | | NULL | |
+-------+--------------+------+-----+---------+----------------+
Games.homeTeam
フィールドとフィールドでGames.awayTeam
値のルックアップを行いたいと思います。基本的には で同等のものを見つける必要があります。十分に単純です。ただし、同じ SQL ステートメント内でと の両方をテーブルで調べたいと思います。Teams.id
Teams.team
Games.homeTeam
Teams.id
Games.homeTeam
Games.awayTeam
Teams
私はおそらくこのようなものがうまくいくだろうと考えました:
$result = mysql_query("SELECT * FROM Games g, Teams ht, Teams at where g.homeTeam = ht.id AND g.awayTeam = at.id ORDER BY g.gameDate") or die(mysql_error());
次に、行をピックアップします。
while($row = mysql_fetch_array($result)) { echo "Home Team: " . $row['ht.team'];}
という名前のインデックスがないというmysqlエラーが表示されるため、それはできませんht.team
。
ここで何を達成しようとしているのかがかなり明確になることを願っています。これについてどうすればよいですか?ある種のエイリアスを使用する必要があると思いますが、目的を達成するために SQL ステートメントがどのように見えるべきかについて頭を悩ませることはできません。