ZF2 Select 语句:更改连接表的列顺序
ZF2 Select Statement: Change columns order with joined tables
我有一个这样的 select 语句:
$select1 = $sql->select('table1');
$select1->columns('col1', 'col2', 'col3');
$select1->join('table2', 'table1.id = table2.id', array('col4', 'col5'));
$select1->join('table3', 'table2.id2 = table3.id2', array('col6', 'col7'));
我的 select 语句按以下顺序显示列:col1、col2、col3、col4、col5、col6、col7。
我想以任何其他顺序显示列,例如:col7、col6、col1、col2、col3、col4、col5。
如何在不更改 FROM
语句和联接顺序的情况下执行此操作?我需要像在一个 $select1->columns()
中指定列这样的东西,这样我就可以设置我想要的任何列顺序。
由于我今天无法对此进行测试,所以暂时尝试一下 -
$select1 = $sql->select('table1');
$select1->columns(array('col1', 'col2', 'col3'));
$select1->join('table2', 'table1.id = table2.id', array('col4', 'col5'));
$select1->join('table3', 'table2.id2 = table3.id2', array('col6', 'col7'));
根据上述 select 语句创建包装器。
$select_main = $sql->select();
$select_main->from(array('temp_table' => $select1));
$select_main->columns(array('col7', 'col6', 'col1', 'col2', 'col3', 'col4', 'col5'));
现在执行 $select_main
并检查结果。
这只是一个想法,通过为结果创建包装器 select 可以帮助更改列的位置。
将很快测试上面的代码,如果需要任何更改,会通知您。
祝你好运!!!
我有一个这样的 select 语句:
$select1 = $sql->select('table1');
$select1->columns('col1', 'col2', 'col3');
$select1->join('table2', 'table1.id = table2.id', array('col4', 'col5'));
$select1->join('table3', 'table2.id2 = table3.id2', array('col6', 'col7'));
我的 select 语句按以下顺序显示列:col1、col2、col3、col4、col5、col6、col7。
我想以任何其他顺序显示列,例如:col7、col6、col1、col2、col3、col4、col5。
如何在不更改 FROM
语句和联接顺序的情况下执行此操作?我需要像在一个 $select1->columns()
中指定列这样的东西,这样我就可以设置我想要的任何列顺序。
由于我今天无法对此进行测试,所以暂时尝试一下 -
$select1 = $sql->select('table1');
$select1->columns(array('col1', 'col2', 'col3'));
$select1->join('table2', 'table1.id = table2.id', array('col4', 'col5'));
$select1->join('table3', 'table2.id2 = table3.id2', array('col6', 'col7'));
根据上述 select 语句创建包装器。
$select_main = $sql->select();
$select_main->from(array('temp_table' => $select1));
$select_main->columns(array('col7', 'col6', 'col1', 'col2', 'col3', 'col4', 'col5'));
现在执行 $select_main
并检查结果。
这只是一个想法,通过为结果创建包装器 select 可以帮助更改列的位置。
将很快测试上面的代码,如果需要任何更改,会通知您。
祝你好运!!!