我需要加入两个表,但这两个表都有一个名为' 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_customer
和tbl_users
都包含字段名称用户名,因此当显示用户名时,它来自tbl_user
。我需要tbl_customers
答案 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")。它将包含两个值,由空格分隔(分隔符由我们选择)。