我有两张这样的表: -
Tablea
-------
id|Comp_name|
1 |abc |
Tableb
--------
ids|id|Comp_name|
2 |1 |def|
我试图将这两个表连接成一个带有这样的查询的表
SELECT * FROM tablea
INNER JOIN tableb ON tablea.id=tableb.id
结果是这样的
id|Comp_name|ids|Comp_name|
1 |abc |2 |def|
。 如何将Comp_name值分成php? 我试过像这样的代码但是失败了: -
foreach($query->result() as $row){
echo '<tr class="'.$class.'">
<td>
'.$row->Tablea.Comp_name.'
</td>
<td>
'.$row->Tablea.Comp_name.'
</td>
答案 0 :(得分:2)
可以在查询选择列表中使用别名为列提供不同的名称。
了解更多信息Click此处。
SQL查询看起来像
SELECT tablea.id,tablea.Comp_name AS compname_a, tableb.*
FROM tablea
INNER JOIN tableb ON tablea.id=tableb.id
PHP
<?php foreach($query->result() as $row):?>
<tr class="<?php echo $class?>">
<td><?php echo $row->compname_a ?></td>
<td><?php echo $row->Comp_name ?></td>
</tr>
<?php endforeach;?>
答案 1 :(得分:1)
对于您想要的输出,您只需使用alias
从两个表中获取相同的列名值。
修改后的查询:
SELECT tablea.id, tablea.Comp_name as FirstVal,
tableb.ids, tableb.Comp_name as SecondVal
FROM tablea
INNER JOIN tableb ON tablea.id=tableb.id
你可以在php中找到类似的东西:
$row->FirstVal // for ist value
$row->SecondVal // for second value
您还可以浏览更多内容: MYSQL Alias
答案 2 :(得分:0)
您可以尝试以下操作:
SELECT id, tablea.Comp_name as A_Comp_name, ids, tableb.Comp_name as B_Comp_name
FROM tablea
INNER JOIN tableb ON tablea.id=tableb.id
结果将是这样的:
id|A_Comp_name|ids|B_Comp_name|
1 |abc |2 |def |
答案 3 :(得分:0)
在这种情况下使用别名。 查询:
SELECT tablea.Comp_name as company1, tableb.Comp_name as company2
FROM tablea
INNER JOIN tableb ON tablea.id=tableb.id