连接Orders与Warehouse表时SQL报错:无法识别orders名称
问题描述
我正在跟随教程操作,已完全按照演示步骤执行,**订单表(Orders)与仓库表(Warehouse)**的关联字段为warehouse_id,但JOIN语句无法正常运行。多次删除重写代码并与演示内容对比,仍未找到问题所在。
使用的SQL代码
select count( Distinct warehouse.state ) AS num_states FROM `applied-primacy-364918.warehouse_orders.Orders` JOIN `applied-primacy-364918.warehouse_orders.Warehouse` warehouse ON orders.warehouse_id = warehouse.Warehouse_id GROUP BY warehouse.state
报错信息
unrecognized name for orders; Did you mean order_id? referenced line 6
Dataset = warehouse_orders
问题原因与解决方法
- 核心问题:你给仓库表(Warehouse)起了别名
warehouse,但未给订单表(Orders)指定别名,却在JOIN条件里用orders.warehouse_id引用字段,SQL引擎无法识别未定义的orders别名。 - 解决办法:给订单表(Orders)添加别名
orders,修改后的SQL代码如下:
select count( Distinct warehouse.state ) AS num_states FROM `applied-primacy-364918.warehouse_orders.Orders` orders JOIN `applied-primacy-364918.warehouse_orders.Warehouse` warehouse ON orders.warehouse_id = warehouse.Warehouse_id GROUP BY warehouse.state
额外提示:可检查字段大小写一致性,仓库表关联字段是Warehouse_id(首字母大写),订单表是warehouse_id(全小写),若你的SQL引擎区分大小写,需统一字段名格式,但当前报错由别名问题导致,优先解决别名即可。
内容的提问来源于stack exchange,提问作者JBright
相关产品推荐
相关产品推荐

