错误号:1064
我在codeigniter中加入两个表时遇到此错误。错误号:1064
Error Number: 1064
You have an error in your SQL syntax; check the manual that
corresponds to your MariaDB server version for the right syntax to use
near '.`id = a`.`assignee_key where a`.`assigned_to="office" and
user`.`id="53"`' at line 1
select a`.* from address as `a LEFT JOIN user ON user`.`id = a`.`assignee_key where a`.`assigned_to="office" and user`.`id="53"
$this->db->select('select a.* from address as a LEFT JOIN user ON user.id = a.assignee_key where a.assigned_to="office" and user.id="'.$user_id.'"');
$query = $this->db->get();
return $query->row();
你有别名表名的问题。试试这个
$this->db->select('select a.* from address a LEFT JOIN user u ON u.id = a.assignee_key where a.assigned_to="office" and u.id="'.$user_id.'"');
$query = $this->db->get();
return $query->row();
谢谢,但还是我得到的错误:错误编号:1064 您的SQL语法错误。检查对应于您MariaDB的服务器版本使用附近的正确语法手册“.'assignee_key其中'a'.assigned_to =‘办公室’和'u'.'id =‘53’”在1号线 SELECT'选择a'.' *从地址左连接用户u ON u'.'id = a'.'assignee_key其中a'.assigned_to = “办公室” 和'u'.'id = “53”' –
@Sunilkumarm是那assignee_key或assigned_key? – Yoshioka
完全assignee_key。 –
你有两个选择。这是您的查询的更好/结构化版本。
$this->db->select("a.*")
->from("address as a")
->join("user","user.id = a.assignee_key","left")
->where(array("a.assigned_to"=>"office","user.id"=>$user_id));
$query = $this->db->get();
return $query->row();
更新:对于评论尽量左外连接
->join("user","user.id = a.assignee_key","left outer")
它保留了不匹配的行从第一个(左)表中,第二个形状以空行加入他们(右)表。
谢谢,没有错误。但我想显示的结果如果与user_ID的地址表中没有数据,也就是说,如果我没有在地址表中的user_id记录我需要显示空记录,但我越来越严重:注意 消息:试图让非财产-object –
尝试左外侧代替左侧。 –
我已经尝试了左外部,但得到相同的错误。 –
我猜想使用'AS'没有什么错误。 –
似乎你缺少左'周围表名.. \'表名\'\'列名\' – diEcho