用另一个表中的名称替换拉出的SQL ID值

时间:2013-08-08 10:08:26

标签: php sql loops pdo foreign-keys

我有一些代码(见下文)填充了包含所有记录的表。但是,我希望将为site_id显示的ID替换为存储在另一个表中的实际名称。例如site_id是名为sites_tbl的表中的主键,我想拉出关联的sitename并在表中显示它,而不是来自{{的ID 1}}作为外键。我假设我需要做一些循环,其中$ data变量中的foreach site_id选择sheets_tbl然而我无法使其工作。

sitename Where site_id = the $row['site_id']

2 个答案:

答案 0 :(得分:2)

我建议一个非常简单的SQL连接。假设sites_tbl中的站点名称为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>

现在,您不仅拥有sheet_tbl的数据,还拥有您现在可以直接使用的sites_tbl相关数据。

在此处详细了解联接:http://www.w3schools.com/sql/sql_join.asp

答案 1 :(得分:1)

您可以join一起使用表格;

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