Symfony / Doctrine多对多加入/选择不工作

时间:2016-05-05 00:09:31

标签: php mysql join doctrine

我正在尝试做这样的事情:

select * from table1 left join table2 on table1.field1=table2.field1 and table1.filed2=table2.filed2

...但是在DQL中。我加入表的字段在两个表中都具有相同的名称。我不允许修改表结构或列名。

在Table1的Symfony实体中,我创建了以下关联并生成了getter和setter:

/**
 * @ORM\ManyToMany(targetEntity="Table2")
 * @ORM\JoinTable(name="Table1_Table2",
 *      joinColumns={@ORM\JoinColumn(name="field1", referencedColumnName="field1"), @ORM\JoinColumn(name="field2", referencedColumnName="field2")},
 *      inverseJoinColumns={@ORM\JoinColumn(name="field1", referencedColumnName="field1"), @ORM\JoinColumn(name="field2", referencedColumnName="field2")}
 *      )
 */
private $table1_table2;

更新数据库架构后,尝试执行如下查询:

$results = $em->getRepository("AppBundle:Table1")->createQueryBuilder(t)->leftJoin('t.table1_table2', 'a');

...我只是从table1获取colums / results。如果我做一个innerJoin而不是leftJoin,我没有得到任何结果。

我可能做错了什么?是否可以使用DQL做这样的事情?

0 个答案:

没有答案