列が少ない非常に基本的なテーブルがあります。中にあり15 records
ます。
今、私がこれを使用する場合query
:
SELECT * FROM excursions WHERE lang_id = 1
期待どおり5
にレコードを返します。
しかし、doctrine2を使用すると、次のようなクエリが作成されます。
SELECT
e0_.idx AS idx0,
e0_.place_id AS place_id1,
e0_.lang_id AS lang_id2,
e0_.excursion_name AS excursion_name3,
e0_.excursion_type AS excursion_type4,
e0_.excursion_text_short AS excursion_text_short5,
e0_.start_date AS start_date6,
e0_.end_date AS end_date7,
e0_.override_place AS override_place8,
e0_.languages AS languages9,
e0_.meeting_place AS meeting_place10,
e0_.excursion_text AS excursion_text11,
e0_.starts_at AS starts_at12,
e0_.category_id AS category_id13,
e0_.map_link AS map_link14,
e0_.capacity AS capacity15,
e0_.pick_up_time AS pick_up_time16,
e0_.is_activity AS is_activity17
FROM excursions e1_, excursions e0_
WHERE e0_.lang_id = 1
さて、これを実行すると25 records
!5 copy for each record
。それらはまったく同じですが、代わりにレコードを5
返します。25
(5x5)
はい、削除するexcursions e1_
と合計5レコードが返されます。しかし、なぜ?
誰かがそのクエリを見ることができますか、私はここで何かを逃しましたか?
使用しQueryBuilder()
ました。
$qb = $this->getRepository()->createQueryBuilder('Excursions');
$qb->select('e')->from('Web\Bundle\ExcursionBundle\Entity\Excursions', 'e');
$qb->andWhere("e.langId = 1");
注:私は他のスタイルを。の有無にかかわらず行いQueryBuilder()
ました。結果は常に同じです。PHPは1
それぞれのコピーを取得しました。サーバー側で実行するクエリは5
、各レコードのコピーを取得します。
500
教義が複数回取得された場合、レコードのようにテーブル全体をフェッチするとどうなるので、私はこれを求めています。それはおそらくつかむでしょう500x5
。プロセスを遅くしませんか?