0

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'

(!updated) クエリが少し変更され、より簡単になりました。"s"."website_id" AS "websites.id" は反対方向に反転する必要があると思うので、最初の瞬間に何か問題があると思います.. "websites.id" AS "s"."website_id" が必要ですwebsite_statistics テーブルから website_id でレコードを取得する website.id。

前もって感謝します!

ニック

4

1 に答える 1

1

うまくいきました。問題はそれ自体のクエリではありませんでした。最初のテーブルのモデル (exchangeArray) に 2 番目のテーブル (結合するテーブル) のフィールドを追加する必要がありました。それはトリックをしました。ありがとうございます。

于 2013-01-03T13:26:59.030 に答える