directory
directory

Reputation: 3167

ZF2 Inner join with where clause returns empty result

When I try the follow mysql query in send I just get back an empty results set (who suposed to be filled).

I tried the follow query in my mysql workbench (gives a results back)

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

And this one in my ZF2 application (empty result set)

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

Debug result:

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'

(!updated) The query a bit so it's more easier. I think there goes something wrong at the first moment because I think "s"."website_id" AS "websites.id" has to flip in the other direction .. "websites.id" AS "s"."website_id" I need websites.id to take record by website_id from the websites_statistics table.

Thanks in advance!

Nick

Upvotes: 0

Views: 2005

Answers (1)

directory
directory

Reputation: 3167

I got it work. The problem wasn't the query it's self. I had to add the fields of the second table (to one I join) to the model (exchangeArray) of the first table! That did the trick. Thanks you all.

Upvotes: 1

Related Questions