0
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 列。

提前致谢...

4

2 回答 2

2

Mysql 不知道你想要哪个 product_id。您需要在选择中的“product_id”列之前使用别名。即(假设您需要 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;
于 2013-09-02T01:50:10.663 回答
0

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

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

因此,您需要限定您想要一个(在SELECT列列表中)。你想要a.product_id还是 (possibly-null-because-of-the-left-join) p.product_id

注意:是的,即使连接、位置或约束将确保所述列名的所有版本都具有相同的值,您仍然必须限定要选择哪一个。

于 2013-09-02T01:49:03.290 回答