繁体   English   中英

MYSQL内部联接两个表相同的列名不同的值

[英]MYSQL Inner Join Two Tables Same Column name Different Value

我有两个这样的表:

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>

可以在查询选择列表中使用别名来为列指定其他名称。

有关更多信息,请单击此处。

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;?>

对于所需的输出,您只需要使用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别名

您可以尝试以下方法:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM