我有两个表格如下,一个表格包含可用单位数量(库存),我试图返回每个产品类别的库存数量,并将其与次表格连接以查看描述和价格等。 / p>
当我运行以下查询时,我得到“不明确的列名'productID'。”
我做错了什么?
SQL查询:
select productID, count (stock)as available_count
from product_units
join product_type ON product_type.description = product_units.productID
group by productID
这会返回错误:
不明确的列名'productID'。
表product_type
productID description price
101 tent 20.00
102 xltent 50.00
表product_units
unitID productID stock
1 101 1
2 101 1
3 101 1
4 102 1
获取库存计数的原始SQL查询,有效:
select productID, count (stock)as available_count
from product_units
group by productID
我正在使用带有Coldfusion的SQL Server 2008 R2
答案 0 :(得分:9)
我认为您的错误更可能是“不明确的列名'productID'。”并且,我猜测连接也应该在该领域:
select product_units.productID, count (stock)as available_count
from product_units
join product_type ON product_type.productID = product_units.productID
group by product_units.productID
要从product_type表中选择所有行,请使用right outer join
:
select product_units.productID, count (stock)as available_count
from product_units
right outer join product_type ON product_type.productID = product_units.productID
group by product_units.productID
要从产品类型表中选择所有信息,请先进行聚合,然后加入:
select pt.*, pu.available_count
from (select productId, count(stock) as available_count
from product_units
group by productId
) pu join
product_type pt
on pt.productID = pu.productId;