从2个连接表doctrine / symfony2中选择列

时间:2015-12-31 10:53:49

标签: php symfony join doctrine-orm

我正在尝试从我的表中选择两列。我有两个表,这些表有关系。

第一个表的名称是:客户端(一些列 - > name和bla bla bla)

第二个表的名称是:服务(2列 - > id和名称)

(他们有这样的关系 - > Client.auth - Service.id)

我必须选择Client.name和Service.name。

我试过这段代码:

$q = $em->createQuery('SELECT  c.name as name , s.title as title FROM DefaultAppBundle:Client c INNER JOIN DefaultAppBundle:Service s');

我也试过这个

$q = $em->createQuery('SELECT  c.name as name , s.title as title FROM DefaultAppBundle:Client c INNER JOIN c.service s');

还有这个

$q = $em->createQuery('SELECT  c.name as name , s.title as title FROM DefaultAppBundle:Client c INNER JOIN c.service s ON c.service=s.id');

但是没有一个问题能让我得到一个结果。有人可以帮我吗?

1 个答案:

答案 0 :(得分:3)

您正在考虑使用SQL而不是DQL。您将返回一个对象数组,它的关系将是聚合对象。

您的代码应该是这样的:

$q = $em->createQuery('SELECT  c.name as name , s.title as title FROM DefaultAppBundle:Client c INNER JOIN c.service s');
$result = $q->getScalarResult();

为了更准确地回答你需要像@xabbuh那样显示你的映射。

检查此here