JOIN操作codeigniter显示空结果

时间:2013-06-12 17:38:13

标签: codeigniter activerecord join

我对codeigniter很新,正在尝试JOIN操作。我的数据库表users结构是

id   username      password     user_type  cust_id
8     abc           xyz          cust        7

account_numbers表是

bank_id     customer_id     ac_number  creation_date
3                    7          12345       2013-06-12   

要获取已知用户ID的帐号,我写了

function get_ac_no($user_id)
{

    //echo $user_id;

    $this->load->database();
    $this->db->select('ac_number');
    $this->db->from('account_numbers');
    $this->db->join('users','account_numbers.customer_id = users.id');
    $this->db->where('customer_id ',$user_id);
    $this->db->limit(1);

    $q = $this->db->get();

    $r = $q->result();

    var_dump( $r );
    return $r;       
}

但它显示空洞的结果!你能说明我做错了吗?

2 个答案:

答案 0 :(得分:0)

我认为users.id中的问题会将其替换为users.cust_id。 它可能会得到你的结果。 正确的代码是:

function get_ac_no($user_id)
{

    //echo $user_id;

    $this->load->database();
    $this->db->select('ac_number');
    $this->db->from('account_numbers');
    $this->db->join('users','account_numbers.customer_id = users.cust_id');
    $this->db->where('account_numbers.customer_id ',$user_id);
    $this->db->limit(1);

    $q = $this->db->get();

    $r = $q->result();

    var_dump( $r );
    return $r;       
}

答案 1 :(得分:0)

您没有匹配用户ID和customer_id的记录,因此您可以获得null结果集。 如果你的表记录像......

用户

 id   username      password     user_type  cust_id
 8     abc           xyz          cust        7

account_numbers

bank_id     customer_id     ac_number  creation_date
3                    8          12345       2013-06-12   

你可以得到一条记录..

在上表中使用您的结果,例如......

 ac_number
   12345

您的加入符合用户 ID account_numbers customer_id ...

如果您在匹配用户ID和客户ID时获得记录。

抱歉我的英语.....