在没有指定关系的表上加入Doctrine中的查询

时间:2012-07-27 02:18:38

标签: symfony1 doctrine doctrine-1.2 doctrine-query

我有两个表没有在schema.yml中相互定义的关系。 但是,表1具有对表2的主键的外键引用。显然,我没有很好地设计数据库,但现在是缓解时间。

我必须在两个表之间进行左连接,并在where子句中检索我想要的选择行。要做到这一点,我做:

 Doctrine_Query::create()->select('t.*, l.lid')->from('Taxonomy t')->leftJoin('t.Cid c')      ->leftJoin('c.Lesson l')->where('t.section = ?','Critical reading');

这通常应该这样做,但它不会,因为它返回的是分类表中的所有行,而不管where条件。我在想,这是因为列中没有指定关系吗?这将是荒谬的,因为查询起作用,只是在它没有的学说上下文中。

由于

1 个答案:

答案 0 :(得分:6)

在学说中,您只能使用您在模式中定义的关系加入,这是一个已知的限制。您可以使用Native SQL功能作为解决方法。