Mysql SQL:创建主页&;客场询问
我有以下两个查询,产生以下结果:Mysql SQL:创建主页&;客场询问,mysql,sql,Mysql,Sql,我有以下两个查询,产生以下结果: mysql> select f.fixturematchday, f.fixtureid, t.teamname as homeTeam from straightred_fixture as f, straightred_team as t where f.fixturematchday = 15 and f.hometeamid = t.teamid; +------------
mysql> select f.fixturematchday, f.fixtureid, t.teamname as homeTeam
from straightred_fixture as f,
straightred_team as t
where f.fixturematchday = 15 and f.hometeamid = t.teamid;
+-----------------+-----------+-------------+
| fixturematchday | fixtureid | homeTeam |
+-----------------+-----------+-------------+
| 15 | 364393 | Hull |
| 15 | 364394 | Leicester |
+-----------------+-----------+-------------+
2 rows in set (0.00 sec)
mysql> select f.fixturematchday, f.fixtureid, t.teamname as awayTeam
from straightred_fixture as f,
straightred_team as t
where f.fixturematchday = 15 and f.awayteamid = t.teamid;
+-----------------+-----------+----------------+
| fixturematchday | fixtureid | awayTeam |
+-----------------+-----------+----------------+
| 15 | 364393 | Crystal Palace |
| 15 | 364394 | Man City |
+-----------------+-----------+----------------+
2 rows in set (0.00 sec)
但我想再次指出:
+-----------------+-----------+-------------+----------------+
| fixturematchday | fixtureid | homeTeam | awayTeam |
+-----------------+-----------+-------------+----------------+
| 15 | 364393 | Hull | Crystal Palace |
| 15 | 364394 | Leicester | Man City |
+-----------------+-----------+-------------+----------------+
我假设需要某种类型的连接。在这些查询中,您已经在执行连接。您正在加入直线团队
,以获取团队名称。您可以做的是两次加入该表,一次用于f.hometeamid
,一次用于f.awayteamid
注意:可以多次连接同一个表,也可以将一个表连接到自身
您还可以使用JOIN。。在
上,改为使用语法:
SELECT f.fixturematchday, f.fixtureid,
th.teamname as homeTeam, ta.teamname as awayTeam
FROM straightred_fixture as f
JOIN straightred_team as th ON f.hometeamid = th.teamid
JOIN straightred_team as ta ON f.awayteamid = ta.teamid
WHERE f.fixturematchday = 15
您已经在这些查询中执行了一个JOIN
。您正在加入直线团队
,以获取团队名称。您可以做的是两次加入该表,一次用于f.hometeamid
,一次用于f.awayteamid
注意:可以多次连接同一个表,也可以将一个表连接到自身
您还可以使用JOIN。。在
上,改为使用语法:
SELECT f.fixturematchday, f.fixtureid,
th.teamname as homeTeam, ta.teamname as awayTeam
FROM straightred_fixture as f
JOIN straightred_team as th ON f.hometeamid = th.teamid
JOIN straightred_team as ta ON f.awayteamid = ta.teamid
WHERE f.fixturematchday = 15
我认为两个子选择应该是最简单的方法
我认为两个子选择应该是最简单的方法你的第一个查询是什么,即主队
一个?是的。希望这能有所帮助。不,我是要求你提供第一个问题。显示两个结果集,但仅显示一个查询。如果您同时提供这两个查询,那么将它们连接起来就更容易得到结果。同时显示表中的示例内容也不会有什么坏处。通过在您的中列出来自的多个表,并在的中添加f.awayteamid=t.teamid
,您已经在执行(内部)联接。您的第一个查询是什么,homeTeam
之一?是的。希望这能有所帮助。不,我是要求你提供第一个问题。显示两个结果集,但仅显示一个查询。如果您同时提供这两个查询,那么将它们连接起来就更容易得到结果。同时显示表中的示例内容也不会有什么坏处。通过在中列出来自的多个表,并在中添加f.awayteamid=t.teamid
,您已经在进行(内部)连接。
SELECT a.fixturematchday, a.fixtureid,
(SELECT teamName FROM straightred_team t WHERE t.teamid = a.hometeamid)
AS homeTeam,
(SELECT teamName FROM straightred_team t WHERE t.teamid = a.awayteamid)
AS awayteam
FROM fixturematchday AS a
WHERE a.fixturematchday = 15