where 子句中的列“id"不明确

2021-12-10 00:00:00 mysql codeigniter mysql-error-1052

我收到此错误,但不知道为什么?

<块引用>

错误编号:1052
where 子句中的列 'id' 不明确

SELECT `leads`.*,`customers`.`id` 作为customers_id,`customers`.`name` AS customers_name,`customers`.`company` 作为customers_company,`customers`.`email` 作为customers_email,`customers`.`phone` 作为customers_phone,`customers`.`created_at` AS customers_created_at,`customers`.`updated_at` AS customers_updated_at,`customers`.`ip_address` AS customers_ip_addressFROM (`leads`)JOIN `customers` ON `customers`.`id` = `leads`.`customer_id`哪里`id` = '3'AND `leads`.`id` = '1'LIMIT 1

<块引用>

文件名:/home/www/REMOVED/models/lead.php

行号:12

函数如下所示:

function get($id){$this->db->select('leads.*,customers.id AScustomers_id,customers.name AScustomers_name,customers.company AScustomers_company,customers.email AScustomers_email,customers.phone AScustomers_phone,customers.created_at AScustomer_created_at,customers.updated_at AS customers_updated_at,customers.ip_address AS customers_ip_address');$this->db->where('leads.id', '1');$this->db->from('leads');$this->db->join('customers', 'customers.id = Lead.customer_id');$this->db->limit(1);$query = $this->db->get();如果 ($query->num_rows() == 1){$result = $query->result();返回 $result[0];}}

第 12 行是 $query = $this->db->get();

怎么了?

解决方案

WHERE id = '3'

您没有指定 id 字段来自哪个表.您的意思是:

WHERE customer.id = '3'

条件将是 customer.id 而不是 id

I get this error and I can't figure out why?

Error Number: 1052
Column 'id' in where clause is ambiguous

SELECT `leads`.*,
       `customers`.`id` AS customers_id,
       `customers`.`name` AS customers_name,
       `customers`.`company` AS customers_company,
       `customers`.`email` AS customers_email,
       `customers`.`phone` AS customers_phone,
       `customers`.`created_at` AS customers_created_at,
       `customers`.`updated_at` AS customers_updated_at,
       `customers`.`ip_address` AS customers_ip_addressFROM (`leads`)
JOIN `customers` ON `customers`.`id` = `leads`.`customer_id`
WHERE `id` = '3'
  AND `leads`.`id` = '1'LIMIT 1

Filename: /home/www/REMOVED/models/lead.php

Line Number: 12

The function looks like this:

function get($id)
{
  $this->db->select('leads.*, customers.id AS customers_id, customers.name AS customers_name, customers.company AS customers_company, customers.email AS customers_email, customers.phone AS customers_phone, customers.created_at AS customers_created_at, customers.updated_at AS customers_updated_at, customers.ip_address AS customers_ip_address');
  $this->db->where('leads.id', '1');
  $this->db->from('leads');
  $this->db->join('customers', 'customers.id = leads.customer_id');
  $this->db->limit(1);
  $query = $this->db->get();

  if ($query->num_rows() == 1)
  {
    $result = $query->result();
    return $result[0];
  }
}

And line 12 is $query = $this->db->get();

What is wrong?

解决方案

WHERE id = '3'

You don't specify which table the id field is coming from. Did you mean:

WHERE customer.id = '3'

condition will be customer.id instead of id

相关文章