多连接 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"
如果我删除第二个连接查询,它会起作用,但在其他方面不起作用!
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"