我正在尝试从我的表中选择两列。我有两个表,这些表有关系。
第一个表的名称是:客户端(一些列 - > 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');
但是没有一个问题能让我得到一个结果。有人可以帮我吗?
答案 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。