propel - JoinWith并使用Query

时间:2016-03-31 17:07:11

标签: php join propel

JoinWith和useTablenameQuery之间有什么区别?它的工作如何推进,为什么JoinWith比useTable_nameQuery更快?如何工作格式化?谢谢你的帮助:

1 个答案:

答案 0 :(得分:0)

主要区别在于您具有专门针对右侧的过滤器,例如TableB=?

joinWith:模式中定义的默认加入条件

$rows = TableAQuery::create()
    ->joinWith('TableB')
    ->find();

useTableBQuery 对表右侧使用过滤器

$rows = TableAQuery::create()
    ->useTableBQuery()
        ->filterByColumnName($value) // A column in TableB
    ->endUse()
    ->filterByColumnName($value2) // A column in TableA
    ->find();

请注意,第二个->filterByColumnA()位于->useTablBQuery之外,以说明您可以对两个表进行过滤