我对 Zend 很陌生,并且对 Zend Select 抽象有所了解。在尝试创建一个从不同模式连接另一个表的查询时,我遇到了一些问题。
我要生成的 mySql 查询是:
SELECT * FROM `assets`
JOIN `projects`
ON `assets`.project_id = `projects`.id
JOIN `secondSchema`.`users` AS `users`
ON `users`.id = `projects`.user_id
WHERE `projects`.id = ?
AND `users`.id = ?
使用 Zend/Db/Sql/Sql/Select 我可以设置以下选择构建器,但我正在努力在生成的 Sql 语句中设置另一个模式:
$select = $this->_sqlBuilder->select();
$select->from('assets');
$select->join(
'projects',
'projects.id = assets.project_id'
);
$select->join(
'users',
'users.id = projects.user_id'
);
$select->where->equalTo('assets.project_id', $projectID);
$select->where->equalTo('users.id', $userId);
我曾尝试使用 \Zend\Db\Sql\TableIdentifier 来设置模式,但适配器中的原始模式随后被替换,看起来没有一种方法可以让两种模式都出现在查询中。
无论如何要使用 Sql/Select 来执行此操作,还是使用 Zend Db 以错误的方式解决此问题?
谢谢您的帮助