首页 文章

ZF2 Select语句:使用连接表更改列顺序

提问于
浏览
1

我有一个像这样的选择语句:

$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 语句和连接顺序的情况下执行此操作?我需要像只在一个_1286672中指定列的东西,所以我可以设置我想要的任何列顺序 .

1 回答

  • 1

    由于我今天无法对此进行测试,所以现在就试试这个 -

    $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 并检查结果 .

    这只是一个想法,通过创建包装器选择结果可以帮助改变列的位置 .

    将尽快测试上述代码,并告知您是否需要进行任何更改 .

    祝好运!!! .

相关问题