在codeigniter中的内部联接

时间:2017-06-17 09:54:27

标签: php mysql codeigniter

这是错误...

发生数据库错误

错误号码:23000/1052

专栏' id'在字段列表中是不明确的

选择id FROM tbl_vendor内部加入tbl_item开启id = vendor_id WHERE shop =&#39; BVC&#39; < / p>

文件名:C:/xampp/htdocs/parts/system/database/DB_driver.php

行号:691

$shop= $this->input->post('vendor');
                      $this->db->select('id');
                      $this->db->from('tbl_vendor');
                      $this->db->join('tbl_item', 'vendor_id=id', 'inner');
                      $this->db->where('shop', $shop);
                      $query=$this->db->get();

3 个答案:

答案 0 :(得分:1)

只需将表格名称添加为含糊不清的内容,如下所示:

$shop= $this->input->post('vendor');
                      $this->db->select('tbl_vendor.id');
                      $this->db->from('tbl_vendor');
                      $this->db->join('tbl_item', 'tbl_item.id=tbl_vendor.id','inner');
                      $this->db->where('tbl_vendor.shop', $shop);
                      $query=$this->db->get();
                      $data=$query->result_array();

以便查询 SELECT tbl_vendor.id FROM tbl_vendor INNER JOIN tbl_item ON tbl_vendor.id=tbl_item.id WHERE tbl_vendor.shop = 'BVC

更多信息请查看here

答案 1 :(得分:0)

您收到的错误表示字段名称&#34; id&#34;存在于您查询的一个或多个表中,是否可以在每个表中写出您拥有的列? 给表别名并将其与您的字段一起使用将解决您的问题:例如tbl_vendor.id

答案 2 :(得分:0)

因为您必须尝试使用​​类似

的列
$shop = $this->input->post('vendor');

$query = $this->db->select('i.id, v.id as vender_id')
                  ->from('tbl_vendor v')
                  ->join('tbl_item i', 'i.id = v.id')
                  ->where('v.shop', $shop)
                  ->get();

return $query->row_array();

注意:

  • row_array()将返回单个项目
  • result_array()多个项目

https://www.codeigniter.com/user_guide/database/results.html