【问题标题】:INNER JOIN twice form the same tableINNER JOIN 两次形成同一张表
【发布时间】:2021-08-10 16:52:53
【问题描述】:

我有 2 个要加入的数据库表。

DB 表 1 中有足球装置。所以A队打B队,比分是。 数据来自 API,在这个数据库表中,团队是数字而不是实际名称。

在第二个数据库表中,我列出了所有团队名称及其 ID。这些 ID 在 DB 表 1 中给出。

我已经设法 INNER JOIN 主队,但我不知道如何也能加入客队。

这是我目前所拥有的。我无法通过 INNER JOIN 匹配访问者团队。

    <table border="1">
<tr>
<th>Home Team</th>
<th>Away Team</th>
<th>FT Score</th>
</tr>
<?php
global $wpdb;

    $sql = "SELECT wp_football_table_version.localteam_id, wp_AllTeams_table_version.team_name, wp_football_table_version.ft_score, wp_football_table_version.visitorteam_id
    FROM wp_football_table_version
    INNER JOIN wp_AllTeams_table_version ON wp_football_table_version.localteam_id=wp_AllTeams_table_version.team_id 
    INNER JOIN wp_AllTeams_table_version ON wp_football_table_version.visitorteam_id=wp_AllTeams_table_version.team_id 
    ";
    $result = $wpdb->get_results($sql);

    foreach ($result as $print) {
?>
<tr>
<td><?php echo $print->team_name ;?></td>
<td><?php echo $print->visitorteam_id;?></td>
<td><?php echo $print->ft_score ;?></td>

</tr>
<?php
}
?>
</table>

【问题讨论】:

    标签: sql inner-join


    【解决方案1】:

    因为你要再次使用同一张表,所以你需要使用别名

    $sql = "SELECT wp_football_table_version.localteam_id, home.team_name, visitor.team_name, wp_football_table_version.ft_score, wp_football_table_version.visitorteam_id
        FROM wp_football_table_version
        INNER JOIN wp_AllTeams_table_version as home ON wp_football_table_version.localteam_id=home.team_id 
        INNER JOIN wp_AllTeams_table_version as visitor ON wp_football_table_version.visitorteam_id=visitor.team_id 
    

    【讨论】:

      猜你喜欢
      • 2013-01-25
      • 2013-05-28
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-01
      • 2014-10-31
      相关资源
      最近更新 更多