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

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

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

PHP
慕妹3146593 2022-12-23 16:02:50
我有两张桌子:俱乐部    |---------------------|------------------|    |          id         |       name       |    |---------------------|------------------|    |           1         |      Arsenal     |    |---------------------|------------------|    |           2         |      Chelsea     |    |---------------------|------------------|    |           3         |      Fulham      |    |---------------------|------------------|    |           4         |      Leeds       |    |---------------------|------------------|火柴    |---------------------|------------------|------------------|    |          id         |       home       |        away      |    |---------------------|------------------|------------------|    |           1         |        1         |         3        |    |---------------------|------------------|------------------|    |           2         |        2         |         4        |    |---------------------|------------------|------------------|说明: Matches 表中“home”和“away”列中的数字链接到 de Clubs 表中的 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><?php     while($row = $rs_result->fetch_assoc()) {?> <tr><td><a href="club.php?id=<?php echo $row['home'];?>"><? echo $row['home']; ?></a></td><td><a href="club.php?id=<?php echo $row['away'];?>"><? echo $row['away']; ?></a></td></tr><?php } ?>  </table></div>我的问题:如何在表格中显示俱乐部名称,但在“a href”链接中传递俱乐部 ID?我试过 $row[1] 等等,但它不起作用。我需要哪个 SQL 语句?加入?内部联接?左连接?提前谢谢了!
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

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


<?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>


查看完整回答
反对 回复 2022-12-23
  • 1 回答
  • 0 关注
  • 72 浏览

添加回答

举报

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