【发布时间】:2016-02-26 16:02:38
【问题描述】:
我是 ZF2 新手,遇到以下问题:
在一个 db-table 中,我得到了两个引用另一个表的 id。如果我 选择他们,我想显示球员的名字,而不是 id 保存在表格中。
player (id, name)
board (id, playerA, playerB)
playerA 和 playerB 是整数,保存玩家表中的玩家 id。我已经与骨架应用程序相处融洽,但我可以传递给tableGateway->select() 的唯一子句是 where 子句。
有人有想法吗?如何在 ZF2 中准备这样的语句?
SELECT id, (SELECT name FROM player WHERE id = playerA) AS playerA, (SELECT name FROM player WHERE id = playerB) AS playerB FROM board
我找到的教程和参考资料都以 JOIN 结尾。但这不适合这里,对吧?
编辑: 以下是它,骨架应用程序可以正常工作
protected $select;
public function fetchAll() {
$this->select = new Select();
$this->select->from('board')
->columns(array('id', 'kindOf', ...))
->join(['pA' => 'player'], 'pA.id = board.playerA', ['playerA' => 'name'])
->join(['pB' => 'player'], 'pB.id = board.playerB', ['playerB' => 'name']);
$resultSet = $this->tableGateway->selectWith($this->select);
return $resultSet;
}
【问题讨论】:
标签: php mysql zend-framework2