I have two entities, Client and Group:
class Client {
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity=Group::class, inversedBy="clients")
* @ORM\JoinColumn(nullable=false)
*/
private $group;
}
class Group {
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\OneToMany(targetEntity=Client::class, mappedBy="group")
*/
private $clients;
}
What would be a DQL query I could run where I would get a full list of groups, with a flag to say whether a client with id = 1 is in the group?
If I was to do this in bog-standard SQL, I would do something like the following:
select *, (CASE WHEN c.client_id = 10 THEN 1 ELSE 0 END) as in_group
from group
left join client c on c.group_id = group.id