如何解决选择两个引用相同主键表的外键的名称
我有一个库存交易表Transaction_Log
列为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
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。