SQL自连接不返回PHP中的所有数据
我需要在表上进行自连接,因为DQL无法实现,所以我选择了SQL。问题是:SQL自连接不返回PHP中的所有数据,php,sql,doctrine-orm,self-join,Php,Sql,Doctrine Orm,Self Join,我需要在表上进行自连接,因为DQL无法实现,所以我选择了SQL。问题是: select child.*, parent.* from gamme child left join gamme parent on child.gamme_parent = parent.gamme_id where child.gamme_catalogue_id = {an id} 在TOAD中运行该查询时,我得到了预期的结果: +------------+
select child.*, parent.* from gamme child
left join gamme parent on child.gamme_parent = parent.gamme_id
where child.gamme_catalogue_id = {an id}
在TOAD中运行该查询时,我得到了预期的结果:
+------------+-------------+------------+------------+------------+------------+
| column_a | column_b | column_c | column_a_1 | column_b_1 | column_c_1 |
+------------+-------------+------------+------------+------------+------------+
| | | | | | |
+------------+-------------+------------+------------+------------+------------+
现在,当我在PHP中尝试var\u dump
相同的查询时,我没有得到任何连接数据:
以下是我的php代码:
$em = $this->getEntityManager();
$connection = $em ->getConnection();
$query = "select child.*, parent.* from gamme child
left join gamme parent on child.gamme_parent = parent.gamme_id
where child.gamme_catalogue_id =".$catId;
$stmt = $connection->prepare($query);
$stmt->execute();
$result = $stmt->fetchAll();
var_dump($result);
这就是var\u dump
给我的:
array
0 =>
array (size=3)
'column_a' => {some values}
'column_b' => {some values}
'column_c' => {some values}
1 =>
array (size=3)
'column_a' => {some values}
'column_b' => {some values}
'column_c' => {some values}
...
如何在PHP中获取连接数据
编辑
因为我不明白为什么我不能用SQL获取连接数据,所以我最终设法使它与DQL本身一起工作
下面是我如何为那些可能正在寻找关于条令实体自连接解决方案的人所做的:
$qb = $this
->_em
->createQueryBuilder();
$qb
->select('c', 'g', 'p')
->from('CatalogueBundle:Catalogue', 'c')
->leftJoin('c.gammes', 'g')
//"gammes" is found in entity "Catalogue" and targets entity "Gamme"
->leftJoin('g.parent', 'p')
//"parent" is found in entity "Gamme" and targets entity "Gamme" itself
->where('c.catalogueId =:catId')
->setParameter('catId', $catId);
$result = $qb->getQuery()->getArrayResult();
打印($query)的结果是什么?@ReynierPM我终于让它在DQL中工作了。我要编辑这个问题很酷,很高兴你能成功!