Cla*_*asi 2 sql sql-server coldfusion
我有两个表,如下所示,一个表有可用单位(库存)的数量,我试图返回每个产品类别的库存数,并将其与次表连接以查看描述和价格等.
当我运行以下查询时,我得到"不明确的列名'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
Run Code Online (Sandbox Code Playgroud)
这会返回一个错误:
不明确的列名'productID'.
表product_type
productID description price
101 tent 20.00
102 xltent 50.00
Run Code Online (Sandbox Code Playgroud)
表product_units
unitID productID stock
1 101 1
2 101 1
3 101 1
4 102 1
Run Code Online (Sandbox Code Playgroud)
获取库存计数的原始SQL查询,有效:
select productID, count (stock)as available_count
from product_units
group by productID
Run Code Online (Sandbox Code Playgroud)
我正在使用带有Coldfusion的SQL Server 2008 R2
我认为您的错误更可能是"不明确的列名'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
Run Code Online (Sandbox Code Playgroud)
要从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
Run Code Online (Sandbox Code Playgroud)
要从产品类型表中选择所有信息,请先进行聚合,然后加入:
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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27663 次 |
| 最近记录: |