因此,我对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>";
?>
答案 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
}