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