簡體   English   中英

如何使用 JOIN 運算符正確回顯 SQL 表中的結果?

[英]How to echo results from SQL table correctly using JOIN operator?

我有兩張桌子:

俱樂部

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

說明:點擊球隊名稱時,我想打開帶有球隊信息的俱樂部。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>

它呼應了以下內容:

|---------------------|------------------|
|          home       |       away       |
|---------------------|------------------|
|           1         |         3        |
|---------------------|------------------|
|           2         |         4        |
|---------------------|------------------|

我的問題:如何在表格中顯示俱樂部名稱,但在“a href”鏈接中傳遞俱樂部 ID? 我試過 $row[1] 等等,但它不起作用。 我需要哪個 SQL 聲明? 加入? 內部聯接? 左加入?

提前謝謝了!

我相信這應該可行 - 我對您的查詢進行了調整。 當您對查詢的左側(匹配項)感興趣並且不關心是否尚未填充俱樂部時,您可以使用左連接。 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM