内MYSQL连接两个表相同的列名不同价
我有两个表是这样的: -内MYSQL连接两个表相同的列名不同价
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>
别名可以使用在查询选择列表中为列提供不同的名称。
欲了解更多信息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;?>
非常感谢:) –
你可以尝试以下方法:
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 |
使用别名这类型的情况。 查询:
SELECT tablea.Comp_name as company1, tableb.Comp_name as company2
FROM tablea
INNER JOIN tableb ON tablea.id=tableb.id
为了您所需的输出,你只需要使用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
感谢您的回答:) –
@BillyOrigin:很高兴帮助你。 – devpro
尝试使用别名 – 1000111
@ 1000111我应该在哪里把别名吗? –
'SELECT tablea.id,tablea.Comp_name作为comp_name1 FROM表A INNER JOIN表B ON tablea.id = tableb.id' –