我正在编写一个在Zend Framework 1.12中有子查询的查询。我差点儿完成但遭遇了一种奇怪的行为。 这些是我的疑问
$subquery = $db->select()
->from('project')
->reset( Zend_Db_Select::COLUMNS )
->columns('project_id')
->where('user_id = ? ', $iUserId);
$select = $db->select()
->from('user2project')
->reset( Zend_Db_Select::COLUMNS )
->columns('user_id')
->where( 'project_id IN (?)', $subquery->assemble() );
这是生成的SQL语句:
$select->assemble() produces
string(143) "SELECT `user2project`.`user_id` FROM `user2project` WHERE (project_id IN ('SELECT `project`.`project_id` FROM `project` WHERE (user_id = 6 )'))"
子查询的引用类似于“SUBQUERY”。 DB似乎将此作为数组元素并且不解析select。我在Zend查询中需要更改哪些内容才能删除这些引号?
答案 0 :(得分:1)
你不应该使用 - > assemble()。如果你将删除assemble(),你也不需要Zend_DB_Expr。