这是我的第一篇文章,但我在这里阅读了很多年,并从中获得了很多重要信息。
请耐心等待我试图解释我的困境。我什至不确定如何给我的问题贴上标签,因为我真的不知道我正在尝试做什么的术语。我是 PHP/MySQL 的初学者(当您看到我的问题时,这将变得非常明显),但我渴望学习。
无论如何,这里是:
我有两个表,名为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.idTeams.teamGames.homeTeamTeams.idGames.homeTeamGames.awayTeamTeams
我想也许这样的事情会起作用:
$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 语句应该是什么样子才能完成我想要的。