I want to make this query using Zend\\Db\\Sql\\Select:
SELECT table1.* FROM table1
INNER JOIN table2 ON table1.columnA = table2.columnB
INNER JOIN
from the top of the head using Where fluent interface:
$select->where
->nest
->equalTo('table2.column2', 2)
->or
->equalTo('table2.column3', 3)
->unnest
->and
->equalTo('table1.column1', 1);
I would do something like:
$where = new \Zend\Db\Sql\Where();
$where
->nest()
->equalTo('table2.column2', 2)
->or
->equalTo('table2.column3', 3)
->unnest()
->and
->equalTo('table1.column1', 1);
$select->where($where)
Just because this way your $select keep being an implementation of Zend\Db\Sql\SqlInterface while doing
$select->where
->nest
will return an instance of a Zend Sql operator. Which is not bad but then you can't just do
$statement = $sql->prepareStatementForSqlObject($select);
$resultSet = $statement->execute();