我正在尝试运行一个查询,从users表中选择所有用户并加入自己,因为我想选择创建用户的用户。出于某种原因,我在创建者中获得了与first_name和last_name相同的值作为相同的用户,但这不是必然的。
user_Id, username, first_name, last_name, creator_id
1, ksmith, Kevin, Smith, 1
2, wscott, Will, Scott, 1
3, sjones, Steve, Jones, 1
4, twilliams, Tom, Williams, 4
public function get_with_creator()
{
$this->db->select('users.user_id');
$this->db->select('users.username');
$this->db->select('users.first_name');
$this->db->select('users.last_name');
$this->db->select('users.created_at');
$this->db->select('users.updated_at');
$this->db->select("CONCAT(creator.first_name, ' ', creator.last_name) AS creator_name", FALSE);
$this->db->from($this->_table);
$this->db->join('users AS creator', 'users.user_id = creator.user_id', 'inner');
return $this->db->get()->result();
}
答案 0 :(得分:6)
您正在users.user_id = creator.user_id
加入表格。因此,它为每个字段返回相同的名称,因为您正在加入同一行。
您需要加入users.creator_id = creator.user_id
。
答案 1 :(得分:2)
$this->db->join('users AS creator', 'users.creator_id = creator.user_id ', 'inner');