2011-09-01 21 views
1

我有一种地图表,我需要执行多个联接来获取其他必要的数据。你如何用Propel做到这一点?多个联接 - 推进

的Sql会是这样的:

SELECT * FROM表1 INNER JOIN上table1.col1 = table2.id表2 INNER JOIN表3上table1.col2 = table3.id

+0

也就是有办法对递归连接进行排序...从连接表中连接另一个表? –

回答

3

我刚才读的指示错误。

要做到这一点,你只是做:

$result = ClassQuery::create()->joinWith('ClassTable.Instructor')->joinWith('Instructor.Department'); 

然后你做:

$instructor = $result->getInstructor(); 
$department = $instructor->getDepartment(); 

然后你就可以通过干将访问属性:

$prop = $department->getName(); 
+0

我想你可以在不使用joinWith的情况下做到这一点。 –

+1

您需要“joinWith”,因此可以将新连接的表与另一个表连接起来。 Anotherwise Propel将尝试只是始终与创建查询的原始表连接,这会失败。 –