尝试通过使用另一个表中的ID值将两个表连接在一起

时间:2019-09-17 17:26:51

标签: php mysql sql

因此,我对sql还是很陌生,我正试图弄清楚如何将两个表连接在一起。

我有一个名为客户的表和一个名为宠物的表,我想将宠物分配给特定的客户。 我能够为他们分配一个客户值,但只能将其作为ID,当我在显示我的数据的表中引用它时,我不知道如何获取该ID并将其更改为客户名称。

例如在我的客户表中 customer id = 10; customerName = "John Smith";

那我有宠物桌 petId = 16; petName = Alfredo; customerId = 10;

是否有一种方法可以将peters表中的customerID = 10引用回到客户表,以便我可以提取客户名称而不是id?

这是我的代码,用于显示列出宠物查询的表,where $row['customer']我想显示客户名称,而不是ID。

谢谢

        <?php 
      $sql = "SELECT * from pets ORDER BY petName ASC";

      echo "<table class='tableInfo' cellpadding='8'>";
      echo "<tr><th>Pet Name</th><th>Owner</th><th colspan='2'>Action</th></tr>";
      $result = mysqli_query($con, $sql);

      while($row = mysqli_fetch_array($result)){    
          echo "<tr>";    
          echo '<td>' . $row['petName'] .'</td>';    
          echo '<td>' . $row['customerId'] .'</td>'; 
          echo '<td><a href="editPets.php?id=' . $row['id'] . '">Edit</a></td>';    
          echo '<td><a href="deletePets.php?id=' . $row['id'] . '">Delete</a></td>';    
          echo "</tr>";    
    }
        echo "</table>";     
    ?>

1 个答案:

答案 0 :(得分:1)

是的,您肯定可以使用内部联接来做到这一点:

select * from pets
join customers on pets.customerId = customers.customerId
order by petName

听起来查询可能返回错误。也许用以下命令打印错误:

$res = mysqli_query($con, $sql) or die ('Query failed: ' . mysqli_error($con));

while ($row = mysqli_fetch_assoc($res)) {
    // Do something with row
}