1
我正在编写一个在Zend Framework 1.12中有子查询的查询。我快完成了,但遇到了一个奇怪的行为。 这是我的查询Zend Framework中的SQL子查询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'。数据库似乎将此作为一个数组元素,并不解决选择。我需要改变我的Zend查询来摆脱这些引号?
尝试使用新的Zend_Db_Expr('('。$ subselect。')') – satchcoder 2015-02-09 15:51:42
谢谢,这个伎俩。我现在不知道为什么,但没关系。我使用它来增加可读性: - > where('project_id IN(?)',new Zend_Db_Expr($ subquery)) – hottehead 2015-02-09 16:04:36