如何添加一个选择到ZF2中的哪个位置? !
问题描述:
首先,你好=)如何添加一个选择到ZF2中的哪个位置? !
我想知道是否有人知道如何写一个选择的地方,如
SELECT my_column
FROM my_table
WHERE field_1 = something
AND field_2 = (SELECT field_2
FROM my_table_2
WHERE my_field = $myParam);
我知道如何写这个查询,而不选择:
//This part shouldn't matter, it's just my way of connecting to table database
$select = $mytable1->getTableGateway()->getSQL()->select();
//This is where the fun begin
$select->colunms(array('my_column'))
->where(array('field_1' => 'something', 'field_2' => ??);
TRY 1: 使用另一个变量,让我连接到其他基地似乎不工作,因为,当然它不是一个数组或什么...
$select_2 = $myTable2->tableGateway->getSQL()->select();
$select_2->colunms(array('field_2'))
->where(array('my_field' => $myParam);
$select->colunms(array('my_column'))
->where(array('field_1' => 'something', 'field_2' => $select_2);
我尝试添加类似:
$var= $myTable2->getTableGateway()->selectWith($select_2);
//and then
$select->colunms(array('my_column'))
->where(array('field_1' => 'something', 'field_2' => $var->toArray());
它也不管用,自然是因为它不是一条线......
我不认为一个foreach是真的有必要
在我思考之前我有什么想法吗? 预先感谢
答
在ZF1它的工作原理是这样的:
$select_2 = $myTable2->tableGateway->getSQL()->select();
$select_2->columns(array('field_2'))
->where(array('my_field = ?' => $myParam);
$select->columns(array('my_column'))
->where(array('field_1 = ?' => 'something', 'field_2 = ?' => $select_2)
老实说,我不知道这是否会在ZF2工作,但尝试添加通配符“?”到你的where子句。
最好,
这实际上工作...不知道当我第一次尝试这个时出了什么问题......非常感谢= D – Pooka