多连接 postgresql 中的列不明确

column is ambiguous in multiple join postgresql

如果我删除第二个连接查询,它会起作用,但在其他方面不起作用!

ERROR: column reference "category" is ambiguous LINE 1: ...tion", "prefix_product"."full_desc" as "description", "category"... ^

SELECT "prefix_product"."id" as "product_id", 
       "prefix_product"."title" as "name", 
       "prefix_product"."short_desc" as "briefDescription",
       "prefix_product"."full_desc" as "description", 
       "category" as "productCategory" 
FROM "prefix_product" 
JOIN "prefix_category" 
   ON "prefix_product"."category"="prefix_category"."id" 
JOIN "prefix_category_attribs" 
   ON "prefix_product"."category"="prefix_category"."parent" 
WHERE "vendor" = '8'

我在 postgresql 中使用 codeigniter3,在 codeigniter 中,我有:

    $this->db->select(['prefix_product.id as product_id', 'prefix_product.title as name', 'prefix_product.short_desc as briefDescription', 'prefix_product.full_desc as description','category as productCategory']);
$this->db->where('vendor',$vendorId);
$this->db->from($this->tblName);
$this->db->join('prefix_category','prefix_product.category=prefix_category.id');
$this->db->join('prefix_category_attribs','prefix_product.category=prefix_category.parent');
$queryResult =$this->db->get()->result();

谢谢

似乎有不止一个 table 具有相同的列名,即 category。因此,您需要在 SELECT 子句中为列 category 添加前缀,以便显式指定 table 该列属于 :

"prefix_product"."category" as "productCategory"