我需要使用Zend Framework 1.12作为更大查询的一部分来创建以下查询(这只是一个示例):
SELECT `s`.*
FROM `s`
INNER JOIN SELECT id FROM table where id = 13 AS `t`
这是我的尝试:
$query = $this->getDbTable()->select()
->from($this->getDbTable(), array('*'))
->join(array('t' => new Zend_Db_Expr('(SELECT id FROM tables where id = 13)')), array())
->setIntegrityCheck(false);
然而,这是输出:
SELECT `students`.*, `t`.*
FROM `students`
INNER JOIN SELECT id FROM tables where id = 13 AS `t`
我不需要select中的t.*
,因为t
表将在复杂查询中以其他方式使用。
您知道如何选择t.*
但仍然使用子查询进行内连接吗?
答案 0 :(得分:1)
Zend_Db_Select->join
命令是两个/三个参数的构建。
在您的查询中,您缺少最后一个参数。如果您为联接分配另一个参数(请参阅下面的示例),您应该只获得->from(...
部分中表格的结果。
->join(array('t' => new Zend_Db_Expr('(SELECT id FROM tables where id = 13)')), array(), array())