带有where子句的ZF2内连接返回空结果

时间:2013-01-02 20:50:13

标签: mysql join zend-framework2 where

当我在send中尝试跟随mysql查询时,我只返回一个空的结果集(谁被填充)。

我在我的mysql工作台中尝试了以下查询(给出了结果)

SELECT `websites`.*, `s`.`website_id` AS `websites.id` 
FROM `websites` 
INNER JOIN `websites_statistics` AS `s` ON `s`.`website_id` = `websites`.`id` 
WHERE `websites`.`website` = 'google.com' LIMIT 0,1

这个在我的ZF2应用程序中(空结果集)

$sql = new Sql($this->tableGateway->getAdapter());

    $select = $sql->select();
    $select->from('websites')
           ->join(array('s' => 'websites_statistics'), 's.website_id = websites.id', array('websites.id' => 'website_id'), \Zend\Db\Sql\Select::JOIN_INNER)
           ->where(array('websites.website' => 'google.com'));

    $resultSet = $this->tableGateway->selectWith($select);

    echo $select->getSqlString();

    return $resultSet;

调试结果:

SELECT "websites".*, 
"s"."website_id" AS "websites.id" 
FROM "websites" 
INNER JOIN "websites_statistics" AS "s" ON "s"."website_id" = "websites"."id" 
WHERE "websites"."website" = 'google.com'

(!更新)查询有点让它更容易。我认为第一时间出现了问题,因为我认为“s”。“website_id”AS“网站。”“必须向另一个方向翻转......”sites.id“AS”s。“website_id”我需要sites.id通过website_statistics表中的website_id记录。

提前致谢!

尼克

1 个答案:

答案 0 :(得分:1)

我明白了。问题不在于它自己的查询。我必须将第二个表的字段(我加入一个)添加到第一个表的模型(exchangeArray)!这就是诀窍。谢谢大家。