我有这个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')