我有这个codeigniter函数

function allClients($orderby = 'clients_company_name', $sort = 'ASC')
{

    //profiling::
    $this->debug_methods_trail[] = __function__;

    //declare
    $conditional_sql = '';

    //check if any specifi ordering was passed
    if (! $this->db->field_exists($orderby, 'clients')) {
        $orderby = 'clients_company_name';
    }

    //check if sorting type was passed
    $sort = ($sort == 'asc' || $sort == 'desc') ? $sort : 'ASC';

    //----------sql & benchmarking start----------
    $this->benchmark->mark('code_start');

    //_____SQL QUERY_______
    $query = $this->db->query("SELECT *
                                      FROM clients
                                      ORDER BY $orderby $sort");

    $results = $query->result_array(); //multi row array

    //benchmark/debug
    $this->benchmark->mark('code_end');
    $execution_time = $this->benchmark->elapsed_time('code_start', 'code_end');

    //debugging data
    $this->__debugging(__line__, __function__, $execution_time, __class__, $results);
    //----------sql & benchmarking end----------

    //return results
    return $results;

}


它从表客户端选择所有数据。其中之一是“ client_team_profile_id”-该客户端的所有者。

我还需要加入其他表格-团队资料。在这里我们可以找到team_profile_id(系统中有用户的ID)和team_profile_full_name-用户名。

Table: clients

clients_id|clients-company_name|client_address|clients_team_profile_id
1         |Apple               |some street   |2
2         |Dell                |some street   |5


Table team_profile

team_profile_id | team_profile_full_name|
2               |John                   |
5               |Bob                    |


我需要从表CLIENTS中选择所有数据(我们可以看到-选择*),还需要获取连接到客户端的团队用户的名称,并为结果设置参数-ASf.ex。 client_owner_name。

我感谢您的帮助。

最佳答案

因此,您可以将此JOIN添加到现有查询中

SELECT c.*, t.team_profile_full_name as client_owner_name
FROM clients c
    JOIN team_profile t ON t.team_profile_id = c.clients_team_profile_id
ORDER BY $orderby $sort"


您可能还需要更改这段代码以使用表别名,如下所示

 //check if any specifi ordering was passed
if (! $this->db->field_exists($orderby, 'clients')) {
    $orderby = 'c.clients_company_name';
}


并且

function allClients($orderby = 'c.clients_company_name', $sort = 'ASC')

08-27 15:32