如何使用foreach在表中显示带有左连接的选择查询记录?
Posted
技术标签:
【中文标题】如何使用foreach在表中显示带有左连接的选择查询记录?【英文标题】:How to display records of select query with left join in table using foreach? 【发布时间】:2016-03-22 02:30:34 【问题描述】:我有两个表(表 A 和 B)。我需要在一张表中显示它们,但是在如何在我的表中显示记录时遇到了问题。请查看我的示例:
表 A:
id name
1 John
2 Mark
3 Nick`
表b:
id job
1 Encoder
2
3 Programmer`
我做了一个查询来连接两个表
select a.id, a.name, b.job from table_a a
left join table_b b on b.id=a.id
order by a.id;
使用codeigniter,
这是控制器:
$this->db->select('a.id, a.name, b.job);
$this->db->from('table a');
$this->db->join('table b', 'b.id=a.id', 'left');
$this->db->order_by('a.id');
$query = $this->db->get();
$data["view_records"]=$query;
$this->load->view("table_name", $query);
这是风景
<table id="tablestyle" class="table table-bordered table-hover table-condensed">
<col >
<col >
<col >
<col >
<thead>
<tr>
<th><strong>ID</strong></th>
<th><strong>NAME</strong></th>
<th><strong>JOB</strong></th>
<th></th>
</tr>
</thead>
<tbody>
<?php foreach($view_records->result() as $row) ?>
<tr>
<td><?php echo $row->a.id; ?></td>
<td><?php echo $row->a.name; ?></td>
<td><?php echo $row->b.job; ?></td>
<td><input type="submit" value="Modify" id="btnModify" class="btn btn-block btn-success btn-xs" onclick="btnModify('<?php echo $row->a.id; ?>');"/></td>
</tr>
<?php ?>
</tbody>
</table>
【问题讨论】:
【参考方案1】:在模型中
public function get_user()
$query = $this->db->query("select a.id, a.name, b.job from table_a a
left join table_b b on b.id=a.id
order by a.id");
$result = $query->result_array();
return $result;
在控制器中
$data['get_user'] = $this->model_name->get_user();
$this->load->view("view_name", $data);
可见
<table id="tablestyle" class="table table-bordered table-hover table-condensed">
<col >
<col >
<col >
<col >
<thead>
<tr>
<th><strong>ID</strong></th>
<th><strong>NAME</strong></th>
<th><strong>JOB</strong></th>
<th></th>
</tr>
</thead>
<tbody>
<?php foreach($get_user as $rowItem) ?>
<tr>
<td><?php echo $rowItem['a.id'] ?></td>
<td><?php echo $rowItem['a.name'] ?></td>
<td><?php echo $rowItem['b.job'] ?></td>
<td><input type="submit" value="Modify" id="btnModify" class="btn btn-block btn-success btn-xs" onclick="btnModify('<?php echo $rowItem['a.id'] ?>');"/></td>
</tr>
<?php ?>
</tbody>
</table>
【讨论】:
以上是关于如何使用foreach在表中显示带有左连接的选择查询记录?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Oracle SQL 中仅选择最近 30 天内第一次在表中显示的这些 ID?