错误号码:1066不唯一的表/别名:'core_user'

时间:2016-04-10 09:47:28

标签: codeigniter

我在数据库中有3个表。

core_user core_company ct_company

我想加入2个表core_user和core_company,其中foriegn key是cmp_id列..

但它显示错误。

错误号码:1066

不唯一的表/别名:'core_user'

SELECT * FROM(core_usercore_user)加入core_company ON core_companycmp_id = core_usercmp_id WHERE usr_email ='fahad@gmail.com'和usr_password ='123456'和cmp_name ='corpoleave'

文件名:F:/xampp/htdocs/corpoLeave/application/models/loginmodel.php

行号:10

这是我的模特。请帮忙。感谢

<?php class LoginModel extends CI_Model{

    public function login_valid($email,$password,$cname){


        $q= $this->db->where(['usr_email'=>$email,'usr_password'=>$password,'cmp_name'=>$cname])
                            ->from('core_user');

                            $this->db->join('core_company', 'core_company.cmp_id = core_user.cmp_id');
                            $q = $this->db->get('core_user')->result();
                            if($q->result()==true)
                            {
                                return $q->row()->user_id;


                            }
                            else{

                                return false;
                            }

}}

?>

1 个答案:

答案 0 :(得分:2)

在Codeigniter查询构建器中,get()from()方法的执行方式相似。

Codeigniter docs

获取()

$query = $this->db->get('mytable');  
// Produces: SELECT * FROM mytable

<强>从()

$this->db->select('title, content, date');
$this->db->from('mytable');
$query = $this->db->get();  
// Produces: SELECT title, content, date FROM mytable

get("tablename")from("tablename")方法都有效地将FROM tablename附加到构建的语句中,如下所示:

$this->db->select('title, content, date');
$this->db->from('mytable');
$query = $this->db->get('mytable');  
// Produces: SELECT title, content, date FROM mytable FROM mytable

(注意双“FROM”语句)

您收到错误是因为您同时使用from()get()表名。您可以删除from()语句,也可以从get()语句中删除表名。

这看起来像是:

<?php

class LoginModel extends CI_Model {

    public function login_valid($email, $password, $cname) {
        $this->db->where(['usr_email' => $email, 'usr_password' => $password, 'cmp_name' => $cname]);
        $this->db->from('core_user');
        $this->db->join('core_company', 'core_company.cmp_id = core_user.cmp_id');

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

        if ($q->result()) {
            return $q->row()->user_id;
        } else {
            return false;
        }
    }

}