1

我对 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;       
}

但它显示空结果!你能建议我做错了什么吗?

4

2 回答 2

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;       
}
于 2013-06-12T18:10:18.587 回答
0

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

用户

 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

您的加入与usersidaccount_numberscustomer_id匹配...

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

对不起我的英语不好 .....

于 2013-06-12T20:00:18.897 回答