Php 将提取的SQL ID值替换为另一个表中的名称

Php 将提取的SQL ID值替换为另一个表中的名称,php,sql,loops,pdo,foreign-keys,Php,Sql,Loops,Pdo,Foreign Keys,我有一些代码(见下文)用所有记录填充一个表。但是,我想用存储在另一个表中的实际名称替换为site_ID提供的ID。例如,site\u id是名为sites\u tbl的表中的主键,我想提取相关的sitename并将其显示在表中,而不是将来自sheets\u tbl的id作为外键显示。我假设我需要执行某种循环,其中$data变量中的foreach site\u id选择sitename,其中site\u id=$row['site\u id'],但是我无法让它工作 $sql = "SELECT

我有一些代码(见下文)用所有记录填充一个表。但是,我想用存储在另一个表中的实际名称替换为site_ID提供的ID。例如,
site\u id
是名为
sites\u tbl
的表中的主键,我想提取相关的
sitename
并将其显示在表中,而不是将来自
sheets\u tbl
的id作为外键显示。我假设我需要执行某种循环,其中$data变量中的foreach site\u id选择
sitename,其中site\u id=$row['site\u id']
,但是我无法让它工作

$sql  = "SELECT * FROM sheet_tbl";
$stmt = $conn->prepare($sql);
$stmt->execute();
$data = $stmt->fetchAll();


  <?php foreach ($data as $row): ?>
    <tr>
        <td><?=$row['sheet_id']?></td>
        <td><?=$row['username']?></td>
        <td><?=$row['site_id']?></td>
   </tr>
$sql=“从工作表中选择*;
$stmt=$conn->prepare($sql);
$stmt->execute();
$data=$stmt->fetchAll();

我建议使用非常简单的SQL连接。假设站点中的站点名称为
sitename

$sql  = "SELECT sheet.sheet_id, sheet.username, site.sitename FROM sheet_tbl S
       JOIN sites_tbl ST ON ST.site_id = S.site_id ";
$stmt = $conn->prepare($sql);
$stmt->execute();
$data = $stmt->fetchAll();


  <?php foreach ($data as $row): ?>
    <tr>
        <td><?=$row['sheet_id']?></td>
        <td><?=$row['username']?></td>
        <td><?=$row['sitename']?></td>
   </tr>
$sql=“从工作表中选择sheet.sheet\u id、sheet.username、site.sitename
加入站点\u tbl ST ON ST.site\u id=S.site\u id”;
$stmt=$conn->prepare($sql);
$stmt->execute();
$data=$stmt->fetchAll();
因此,现在您不仅可以使用
工作表中的数据,还可以直接使用
站点中的相关数据


阅读有关联接的更多信息:

您可以
将表联接在一起

select  sheet.sheet_id
,       sheet.username
,       site.sitename
from    sheet_tbl sheet
join    sites_tbl site
on      sheet.site_id = site.site_id