Php 关系的WHERE语句

Php 关系的WHERE语句,php,doctrine-orm,symfony,Php,Doctrine Orm,Symfony,我有两张表:Place和Description 一个位置可以包含0、1或更多描述 因此在位置实体中,我有一个描述字段: /** * @ORM\OneToMany(targetEntity="Description", mappedBy="place") */ private $descriptions; 在描述实体中,我有一个位置字段: /** * @ORM\ManyToOne(targetEntity="Place", inversedBy="descriptions") */ pri

我有两张表:
Place
Description

一个位置可以包含0、1或更多描述

因此在位置实体中,我有一个描述字段:

/**
* @ORM\OneToMany(targetEntity="Description", mappedBy="place")
 */
private $descriptions;
描述实体中,我有一个位置字段:

/**
 * @ORM\ManyToOne(targetEntity="Place", inversedBy="descriptions")
 */
private $place;
我想使用QueryBuilder获取基于某个地方字段的描述。差不多

SELECT * FROM Description WHERE Place.id = 439483
我想我应该使用join,但它也会返回Places列。我怎么能根据地点条件得到描述

谢谢

编辑:以下是我尝试的内容:

$em = $this->getEntityManager();
        $placeRepository = $em->getRepository("AppBundle:Place");
        $q = $placeRepository->createQueryBuilder('p')
            ->select("d")
            ->innerJoin("p.descriptions", "d")
            ->where("p.id = 439483");

        $q = $q->getQuery();
        $res = $q->getResult();

        return $res;

但它会返回一个位置和描述,我只需要描述。

下次发布您实际尝试的内容。但由于这是一个简单的查询,这里:

$em = $this->getEntityManager();
            $placeRepository = $em->getRepository("AppBundle:Place");
            $q = $placeRepository->createQueryBuilder('p')
                ->select("d")
                ->innerJoin("p.descriptions", "d")
                ->where("p.id = 439483");

            $q = $q->getQuery();
            $res = $q->getResult();

            return $res;
要获取与地点关联的描述,可以执行以下操作:

$em = $this->getEntityManager();
$descriptionRepository = $em->getRepository("AppBundle:Description");
$q = $descriptionRepository->createQueryBuilder('d')
    ->select("d")
    ->innerJoin("d.place", "p")
    ->where("p.id = 439483");

$q = $q->getQuery();
$res = $q->getResult();

return $res;

请给我们看看你的QueryBuilder结构。我想他只想要退货说明。它将返回一个包含所有描述的位置。这正是我尝试的。事实上,问题是我不想要位置,只想要描述。@damien你看到这个答案了吗?这对你有帮助吗?