【发布时间】:2011-10-05 09:16:12
【问题描述】:
从 tv_channel a 中选择 a.id、b.title、b.start_time、b.end_time 在 a.id = b.tv_channel_id 和 b.start_time >= '2011-09-23 12:00:00' 和 b.end_time
--pager 对象 tnx
【问题讨论】:
标签: php symfony1 criteria propel
从 tv_channel a 中选择 a.id、b.title、b.start_time、b.end_time 在 a.id = b.tv_channel_id 和 b.start_time >= '2011-09-23 12:00:00' 和 b.end_time
--pager 对象 tnx
【问题讨论】:
标签: php symfony1 criteria propel
有什么问题吗?你想在 Propel 中编写这个 SQL 查询吗?
<?php
TvChannelQuery::create('a')
->joinTvProgram('b')
->addJoinCondition('b', 'b.StartTime >= 2011-09-23 12:00:00')
->addJoinCondition('b', 'b.EndTime >= 2011-09-23 14:30:00')
->orderByCode()
->limit(10)
;
类似的方法应该可以,但要小心addJoinCondition 中传递的值,这里没有绑定,如果你想更改这些值,你必须使用它来防止 SQL 注入或其他安全问题。
【讨论】:
$c = new Criteria();
$c->addLeftJoin(tv_channel.id = tv_program .channel_id);
$c->add(tv_program.start_time, '2011-09-23 12:00:00', Criteria::GREATER_EQUAL);
$c->add(tv_program.end_time, '2011-09-23 14:30:00', Criteria::LESS_EQUAL);
$c->addAscendingOrderByColumn(tv_channel.code);
$c->setLimit(10);
$rs = DoSelect($c); //actual select execution here...
【讨论】: