php – 自我加入一张桌子

我正在尝试运行一个查询,从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();
}

解决方法:

您正在加入users.user_id = creator.user_id上的表格.因此,它为每个字段返回相同的名称,因为您要加入同一行.

您需要加入users.creator_id = creator.user_id.

演示:http://sqlfiddle.com/#!2/e1309/2

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...