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

我有两张桌子:


俱乐部


    |---------------------|------------------|

    |          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 语句?加入?内部联接?左加入?


隔江千里
浏览 97回答 1
1回答

精慕HU

我相信这应该有效 - 我对您的查询进行了调整。当您对查询的左侧(匹配)感兴趣并且不关心俱乐部是否尚未填充时,可以使用左联接。F ex,如果您有主客场 1 和 5。我们知道 1 是阿森纳,但俱乐部中没有 5 的条目。左连接会显示它,内连接不会。<?php$sql = "SELECT home,away,homeclub.name as homename,awayclub.name&nbsp; as awayname FROM matches&nbsp;JOIN clubs as homeclub ON matches.home = homeclub.idJOIN clubs as awayclub ON matches.away = awayclub.id"$rs_result = $conn->query($sql);?>&nbsp;<div style="overflow-x:auto"><table><tr><th><strong>Home</strong></th><th><strong>Away</strong></th><tr><?php&nbsp; &nbsp; &nbsp;while($row = $rs_result->fetch_assoc()) {?>&nbsp;<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 } ?>&nbsp;&nbsp;</table></div>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5