SQL将多个键连接多个列

时间:2014-06-12 01:40:15

标签: sql oracle

我试图加入2个表,但我无法确定查询的正确语法。我有一个包含引用资产表的错误的表。但是,对资产表的引用存在两次。一次是实际有缺陷的资产,一次是有缺陷资产所属的主要资产。

这是我的表格结构的简化版本。

表格错误

int faultId

int faultedAssetId

int faultedPrimaryAssetId

表资产

int assetId

varchar assetName

在我的查询中,我想结束以下列

faultId

faultedAssetId

faultedAssetName

faultedPrimaryAssetId

faultedPrimaryAssetName

我目前在faultedAssetId上加入了表格,并且能够从Assets表中检索assetName作为faultedAssetName但我无法弄清楚如何再次加入并将faultedPrimaryAssetId的assetName列检索为faultedPrimaryAssetName。

感谢任何帮助。如果我的问题不清楚,请告诉我。

1 个答案:

答案 0 :(得分:0)

您可以使用表别名识别两个表。

SELECT 
    tf.faultId,
    tf.faultedAssetId,
    ta1.assetName AS faultedAssetName,
    tf.faultedPrimaryAssetId,
    ta2.assetName AS faultedPrimaryAssetName
FROM faults tf
LEFT JOIN assets ta1 ON ta1.assetId = tf.faultedAssetId
LEFT JOIN assets ta2 ON ta2.assetId = tf.faultedPrimaryAssetId