从具有相同列名的mysql数组中获取值

时间:2016-02-25 20:55:42

标签: php mysql

SELECT * 
    FROM companies 
    LEFT JOIN (ownership_reseller_to_company, users) 
    ON (users.ID=ownership_reseller_to_company.RESELLER_ID AND ownership_reseller_to_company.COMPANY_ID=companies.ID) 
    WHERE companies.NAME LIKE '%".$search_parm."%' AND users.ID='".$_USERID."'

我的问题是,companies下的NAME和users下的NAME,但是当我使用$row['NAME'];时,我会在users下获得NAME。有没有办法让companies下的那个?我试过$ row ['companies.NAME'],但没有成功。

2 个答案:

答案 0 :(得分:5)

您需要使用别名,因为两个表中的列名相同。

示例:

SELECT companies.name as cName, users.name as uName FROM companies .......

比使用:

$row['cName'] // company name
$row['uName'] // user name

答案 1 :(得分:3)

如果您使用PDO,可以:

$pdo->setAttribute(PDO::ATTR_FETCH_TABLE_NAMES, 1);


来自文档(http://www.php.net/manual/en/pdo.constants.php):

  

将包含的表名添加到结果集中返回的每个列名。表名和列名由小数(。)字符分隔。支持此属性是在驱动程序级别;你的司机可能不支持它。