Php 如何在ZF2中的sql语句中准备sql语句?
我是ZF2新手,有以下问题: 在db表中,我得到了两个id,它们引用了另一个表。如果我 选择他们,我想显示球员的名字,而不是 id保存在表中Php 如何在ZF2中的sql语句中准备sql语句?,php,mysql,zend-framework2,Php,Mysql,Zend Framework2,我是ZF2新手,有以下问题: 在db表中,我得到了两个id,它们引用了另一个表。如果我 选择他们,我想显示球员的名字,而不是 id保存在表中 playerA和playerB是整数,保存玩家表中的玩家id。我已经熟悉了skeleton应用程序,但是我唯一可以传递到tableGateway->select()的子句是where子句 有人有主意吗?如何在ZF2中准备这样的语句 SELECT id, (SELECT name FROM player WHERE id = playerA) AS play
playerA
和playerB
是整数,保存玩家表中的玩家id。我已经熟悉了skeleton应用程序,但是我唯一可以传递到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
我找到的教程和参考资料都以连接结束。但这不适合这里,对吗
编辑:
下面是它,什么可以与skeleton应用程序配合使用
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;
}
您的问题不是ZF2问题,而是SQL问题。您可以编写以下示例:
SELECT id, pA.name AS playerA, pB.name AS playerB
FROM board
INNER JOIN player AS pA ON pA.id=board.playerA
INNER JOIN player AS pB ON pB.id=board.playerB
在ZF2中:
$select = new Select();
$select->from('board')
->columns('id')
->join(['pA' => 'player', 'pA.id = board.playerA', ['playerA' => 'name'])
->join(['pB' => 'player', 'pB.id = board.playerB', ['playerB' => 'name'])
您的问题不是ZF2问题,而是SQL问题。您可以编写以下示例:
SELECT id, pA.name AS playerA, pB.name AS playerB
FROM board
INNER JOIN player AS pA ON pA.id=board.playerA
INNER JOIN player AS pB ON pB.id=board.playerB
在ZF2中:
$select = new Select();
$select->from('board')
->columns('id')
->join(['pA' => 'player', 'pA.id = board.playerA', ['playerA' => 'name'])
->join(['pB' => 'player', 'pB.id = board.playerB', ['playerB' => 'name'])
对不起,我病了两个星期,现在又回到了活着的人身上。首先,谢谢你们的回复。我试着解决这个问题,结果终于成功了!我真的应该做更多的加入,而不是我上面所说的奇怪的话对不起,我病了两个星期,现在又回到了活着的人身上。首先,谢谢你的回复。我试着解决这个问题,结果终于成功了!我真的应该多做一些连接,而不是像上面那样做一些奇怪的声明=)