Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在同一列上使用两个联接_Php_Mysql_Sql_Join - Fatal编程技术网

Php 如何在同一列上使用两个联接

Php 如何在同一列上使用两个联接,php,mysql,sql,join,Php,Mysql,Sql,Join,我有两张桌子:一张桌子和它相配,另一张桌子是球队。在比赛中,我有一个日期、时间和两个ID(两个队)。在团队中,我有一个ID和团队的名称。我想做的是得到一份有球队名字的比赛名单。 我知道内部连接可以做到这一点,但我不知道如何。。。以下是我所拥有的: SELECT teams.name AS team1, teams.name AS team2, matchs.id, matchs.date, matchs.time FROM matchs INNER JOIN teams ON teams.id=

我有两张桌子:一张桌子和它相配,另一张桌子是球队。在比赛中,我有一个日期、时间和两个ID(两个队)。在团队中,我有一个ID和团队的名称。我想做的是得到一份有球队名字的比赛名单。 我知道内部连接可以做到这一点,但我不知道如何。。。以下是我所拥有的:

SELECT teams.name AS team1, teams.name AS team2, matchs.id, matchs.date, matchs.time
FROM matchs
INNER JOIN teams ON teams.id=matchs.team1
显然,我得到的只是团队的名字1。我怎么能同时拥有两个队名


谢谢你

你想做下面这样的事情。只需使用别名来区分这两个连接,并使代码更具表现力

SELECT teams1.name AS team1, teams2.name AS team2, matchs.id, matchs.date, matchs.time
FROM matchs
    INNER JOIN teams AS teams1
        ON teams1.id=matchs.team1
    INNER JOIN teams AS teams2 
        ON teTeams2ams.id=matchs.team2

最简单的方法是执行两个联接:

SELECT t1.name AS team1, t2.name AS team2, 
       matchs.id, matchs.date, matchs.time
FROM matchs
    INNER JOIN teams t1 
        ON t1.id = matchs.team1  
    INNER JOIN teams t2 
        ON t2.id = matchs.team2

这些表(
t1
t2
)用于区分查询中的每个数据集

您可以通过执行另一个联接并为表提供别名来实现这一点:

SELECT t1.name AS team1, t2.name AS team2, matchs.id, matchs.date, matchs.time
FROM matchs
INNER JOIN teams t1 ON t1.id = matchs.team1 
INNER JOIN teams t2 on t2.id = matchs.team2
SELECT t1.name AS team1, t2.name AS team2, matchs.id, matchs.date, matchs.time
FROM matchs
INNER JOIN teams as t1 ON t1.id = matchs.team1
INNER JOIN teams ON as t2 t2.id = matchs.team1

看来我的SQL类还很遥远!就是这样,很好用,谢谢!是啊,别名在这里很有用。我将原始的join别名设置为teams1,以便更清楚地知道哪些是teams1,哪些是teams2。