问题描述
列为log_id
,to_warehouse
,from_warehouse
,这两个指向仓库表OWHS
的外键都具有列whs_id
,whs_name
我需要输出以下列:log_id
,to_warehouse_name
,from_warehouse_name
尝试过
SELECT t.log_id,w1.whs_name AS to_warehouse_name,w2.whs_name from_warehouse_name
FROM OWHS w1,OWHS w2
INNER JOIN Transaction_Log t ON w1.whs_id = t.to_warehouse AND w2.whs_id = t.from_warehouse
但是会引发错误
无效的表名:w1.whs_id
我使用SAP HANA数据库,但是我对此文章的列名做了一些更改。几年后,我也将返回数据库编程,因此,如果这是一个基本问题,我深表歉意,但是我的谷歌搜索工作并没有返回我想要的结果。
解决方法
从不在FROM
子句中使用逗号。期。将查询写为:
SELECT t.log_id,w1.whs_name AS to_warehouse_name,w2.whs_name from_warehouse_name
FROM OWHS w1 JOIN
Transaction_Log t
ON w1.whs_id = t.to_warehouse JOIN
OWHS w2
ON w2.whs_id = t.from_warehouse;
尽管您可以也可以通过将,
替换为CROSS APPLY
来解决该问题,这只会使逻辑混乱。您正在寻找两个简单的JOIN
。