如何将 select 添加到 ZF2 中的某个位置?
How to do add a select into a where in ZF2?
首先大家好!=)
我想知道是否有人知道如何在诸如
的地方写 select
SELECT my_column
FROM my_table
WHERE field_1 = something
AND field_2 = ( SELECT field_2
FROM my_table_2
WHERE my_field = $myParam );
我知道如何在没有 select 的情况下编写此查询:
//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' => ??);
尝试 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 子句。
最佳,
首先大家好!=)
我想知道是否有人知道如何在诸如
的地方写 selectSELECT my_column
FROM my_table
WHERE field_1 = something
AND field_2 = ( SELECT field_2
FROM my_table_2
WHERE my_field = $myParam );
我知道如何在没有 select 的情况下编写此查询:
//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' => ??);
尝试 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 子句。
最佳,