连接后选择具有相同名称的列

时间:2012-09-10 14:27:43

标签: php mysql zend-framework

基本上我需要使用Zend_Db_Select执行此查询:

SELECT *, `matches`.`name` AS superName, `dimension`.`name` AS someName 
FROM `matches`
JOIN `dimension` ON [whatever condition]
-- etc, etc.

进行连接,其余的很容易最终变成:

$select = Globals::db()->select();
$select -> from("matches")
        -> join("dimension", "`matches`.`idDimension` = `dimension`.`idDimension`")
        -> join("accounts", "`accounts`.idAccount = `matches`.idOwner");        
     // -> etc, etc

return Globals::db()->fetchAll($select);

问题是列name出现在多个表中,因此name本身不明确,因此响应为null。我该如何解决这个问题?

我试过了:

$select = Globals::db()->select();
$select -> from("matches", "*, `matches`.`name`")

$select = Globals::db()->select();
$select -> from("matches", "*", "`matches`.`name`")

但两者都返回错误(未找到列*和语法错误)。

2 个答案:

答案 0 :(得分:1)

尝试

$select -> from("matches", array("*", "name as superName"))

答案 1 :(得分:0)

我认为您需要指定相关名称(别名)matches.*