为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 JOIN 运算符正确回显 SQL 表的结果?

如何使用 JOIN 运算符正确回显 SQL 表的结果?

隔江千里 2024-01-03 16:23:18
我有两张桌子:俱乐部    |---------------------|------------------|    |          id         |       name       |    |---------------------|------------------|    |           1         |      Arsenal     |    |---------------------|------------------|    |           2         |      Chelsea     |    |---------------------|------------------|    |           3         |      Fulham      |    |---------------------|------------------|    |           4         |      Leeds       |    |---------------------|------------------|火柴    |---------------------|------------------|------------------|    |          id         |       home       |        away      |    |---------------------|------------------|------------------|    |           1         |        1         |         3        |    |---------------------|------------------|------------------|    |           2         |        2         |         4        |    |---------------------|------------------|------------------|说明: “比赛”表中“主场”和“客场”列中的数字链接到俱乐部表中的 ID。现在我想回显(使用 php)以下内容:|---------------------|------------------||          home       |       away       ||---------------------|------------------||         Arsenal     |      Fulham      ||---------------------|------------------||         Chelsea     |       Leeds      ||---------------------|------------------|说明:当单击团队名称时,我想打开包含团队信息的club.php页面。我尝试过以下方法:<?php$sql = "SELECT * FROM matches JOIN clubs ON matches.home AND matches.away = clubs.id"$rs_result = $conn->query($sql);?> <div style="overflow-x:auto"><table><tr><th><strong>Home</strong></th><th><strong>Away</strong></th><tr>它呼应了以下内容:|---------------------|------------------||          home       |       away       ||---------------------|------------------||           1         |         3        ||---------------------|------------------||           2         |         4        ||---------------------|------------------|我的问题:如何在表格中显示俱乐部名称,但在“a href”链接中传递俱乐部 ID?我已经尝试过 $row[1] 等,但它不起作用。我需要哪个 SQL 语句?加入?内部联接?左加入?
查看完整描述

1 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

我相信这应该有效 - 我对您的查询进行了调整。当您对查询的左侧(匹配)感兴趣并且不关心俱乐部是否尚未填充时,可以使用左联接。F ex,如果您有主客场 1 和 5。我们知道 1 是阿森纳,但俱乐部中没有 5 的条目。左连接会显示它,内连接不会。


<?php

$sql = "SELECT home,away,homeclub.name as homename,awayclub.name  as awayname FROM matches 

JOIN clubs as homeclub ON matches.home = homeclub.id

JOIN clubs as awayclub ON matches.away = awayclub.id"

$rs_result = $conn->query($sql);

?> 


<div style="overflow-x:auto">

<table>

<tr><th><strong>Home</strong></th><th><strong>Away</strong></th><tr>


<?php     

while($row = $rs_result->fetch_assoc()) {

?> 


<tr>

<td><a href="club.php?id=<?php echo $row['home'];?>"><? echo $row['homename']; ?></a></td>

<td><a href="club.php?id=<?php echo $row['away'];?>"><? echo $row['awayname']; ?></a></td>

</tr>


<?php } ?>  

</table>

</div>


查看完整回答
反对 回复 2024-01-03
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信