ここでいくつかの投稿を見つけましたが、まだ機能しません:
Story と StoryCompleted の 2 つのエンティティがあります。
TA\Minigames\MinigameBundle\Entity\Story:
type: entity
table: story
id:
id:
type: integer
generator: { strategy: AUTO }
oneToMany:
completed:
targetEntity: StoryCompleted
mappedBy: story
fields:
cycle_nr:
type: integer
TA\Minigames\MinigameBundle\Entity\StoryCompleted:
type: entity
table: story_completed
id:
id:
type: integer
generator: { strategy: AUTO }
manyToOne:
story:
targetEntity: Story
fields:
company_id:
type: integer
completed:
type: boolean
すべてのストーリーのリストを取得し、どのストーリーが company_id = 1 で表示されるかを知りたいので、左結合を試しました。
SELECT s FROM MGMinigameBundle:Story s LEFT JOIN s.completed c WHERE s.cycle_nr = 1 AND (c.company_id = $company_id OR c is NULL)
そして、次のような $company_id を取得したいと思います。
story_id completed
1 1
2 -
3 -
しかし、各ストーリーで、特定の $company_id に対して 1 つだけではなく、すべての完了したエンティティ (すべての $company_id に対して) を取得し、必要なものを見つけるためにそれらを反復処理する必要があります。:(