LEFT JOIN。字段列表中的列'product_id'不明确

时间:2013-09-02 01:47:26

标签: mysql join

SELECT product_id,time_id,customer_id,promotion_id,store_id,store_sales,store_cost,SUM(unit_sales) total_unit_sales

FROM sales_fact_1997 a
LEFT JOIN product p ON (a.product_id = p.product_id)

group by product_id order by total_unit_sales;

我想知道为什么我会收到错误:

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

我引用的两个表都有一个product_id列。

提前致谢...

2 个答案:

答案 0 :(得分:2)

Mysql不知道你想要哪个product_id。您需要在select中的“product_id”列之前使用别名。 ie(假设你想要product_id表单sales_fact_1997),

SELECT a.product_id,time_id,customer_id,promotion_id,store_id,store_sales,store_cost,SUM(unit_sales) total_unit_sales

FROM sales_fact_1997 a
LEFT JOIN product p ON (a.product_id = p.product_id)

group by a.product_id order by total_unit_sales;

答案 1 :(得分:0)

您实际上已回答了自己的问题:

  

我引用的两个表都有一个product_id列。

因此,您需要在<{1}}列列表中限定哪个。您想要SELECT还是(可能为null,因为左侧连接)a.product_id

注意:是的,您仍需要确定要选择哪一个,即使连接,where或约束将确保所述列名的所有版本具有相同的值。