在codeigniter中加入时,需要显示具有相同名称但值不同的字段

时间:2016-11-24 09:33:15

标签: php mysql codeigniter

我需要加入两个表,但这两个表都有一个名为' username'这两个表都有不同的值i,我需要在字段中显示两个值'用户名'如何在codeigniter中实现

public function tech_work_completed($id) {
    $this->db->select('c.username,u.id,tw.*,w.*');
    $this->db->from('tbl_tech_work tw');
    $this->db->join('tbl_customers c', 'tw.user_id = c.id', 'left');
    $this->db->join('tbl_users u', 'u.id = tw.technician_id', 'left');
    $this->db->join('tbl_works w', 'w.user_id = c.id', 'left');
    $this->db->where('w.wrk_status', 'completed');
    $query = $this->db->get();
    return $query->result();
}

这是我的模型,表tbl_customertbl_users都包含字段名称用户名,因此当显示用户名时,它来自tbl_user。我需要tbl_customers

2 个答案:

答案 0 :(得分:4)

在列选择时使用列别名,如:

t1.username as uname1, t2.username as uname2

通过使用它,您将获得名为uname1的两列,uname2

$this->db->select('course_name AS `Course Name`, course_desc AS `Course Description`, display_public AS `Display Status`', FALSE);

答案 1 :(得分:0)

除了Mayank Pandeyz的回答:

由于您希望在字段'用户名'中显示这两个值以及别名,因此您可以使用CONCAT。

在您设置了Mayank Pandeyz所描述的别名t1.username as uname1, t2.username as uname2后,您可以"制作"字段用户名如下:

concat( t1.username, " ",t2.username ) AS username

这将在结果中创建新列,根据需要调用(在本例中为" username")。它将包含两个值,由空格分隔(分隔符由我们选择)。