我有这个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中选择所有数据(我们可以看到 - 选择*),并获得连接到客户端的团队用户的名称,并为结果设置参数 - AS f.ex. client_owner_name。
感谢您的帮助。
答案 0 :(得分:0)
因此,您可以将此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')