gpt4 book ai didi

sql - 如何在 JOIN-ed 表上执行 JOIN?

转载 作者:搜寻专家 更新时间:2023-10-30 22:02:38 24 4
gpt4 key购买 nike

我需要在 JOIN-ed 表上执行 JOIN,但我不确定如何完成它。希望下面的查询演示了我正在尝试做的事情:获取国家名称、每个国家的领导人和每个领导人的家乡。

我认为此查询的问题在于在与 President.HomeTown_Id 的第二次连接中使用了连接表“President”。我不知道还能尝试什么。

SELECT 
Countries.Name AS Country,
President.Name AS Leader,
PresidentHomeTown.Name AS LeaderHomeTown
FROM Countries
LEFT OUTER JOIN PoliticalFigures AS President ON Countries.President_Id = President.Id
LEFT OUTER JOIN Cities AS PresidentHomeTown ON President.HomeTown_Id = PresidentHomeTown.Id

在 VS 中,我收到错误消息“无法绑定(bind)由多部分组成的标识符“President.Id”。”

表名和字段名是虚构的,但我需要解决一个相同的问题。我更改了名称以使事情更清楚;希望这将与更多人相关。

-- 更新--

也许原始代码有帮助:

SELECT 
CaseComparisons.Directory AS CaseComparisonDir,
BaselineResult.Directory AS BaselineResultDir,
ComparisonResult.Directory AS ComparisonResultDir,
Setup.FullSvnLink AS SvnLink,
BaselineVersion.FullFilePath AS BaselineExecutableDir
FROM CaseComparisons
LEFT OUTER JOIN Results AS BaselineResult ON CaseComparisons.BaselineResult_Id = Baseline.Id
LEFT OUTER JOIN Results AS ComparisonResult ON CaseComparisons.ComparisonResult_Id = Comparison.Id
LEFT OUTER JOIN Setups AS Setup ON Baseline.Setup_Id = Setups.Id
LEFT OUTER JOIN BuildVersions AS BaselineVersion ON BaselineResult.Version_Id = BuildVersions.Id
WHERE
CaseComparisons.Status = 'Queued' OR
Baseline.Status = 'Queued' OR
Comparison.Status = 'Queued'

运行查询时出现的错误:

The multi-part identifier "Baseline.Id" could not be bound.
The multi-part identifier "Comparison.Id" could not be bound.
The multi-part identifier "Baseline.Setup_Id" could not be bound.
The multi-part identifier "Setups.Id" could not be bound.
The multi-part identifier "BuildVersions.Id" could not be bound.
The multi-part identifier "Baseline.Status" could not be bound.

最佳答案

您指定的别名(例如在 Results AS ComparisonResult 中)与您尝试使用的别名(例如在 Comparison.Id 中)不匹配>).所以,改变这个:

    LEFT OUTER JOIN Results AS ComparisonResult
ON CaseComparisons.ComparisonResult_Id = Comparison.Id

要么这样:

    LEFT OUTER JOIN Results AS ComparisonResult
ON CaseComparisons.ComparisonResult_Id = ComparisonResult.Id

或者这个:

    LEFT OUTER JOIN Results AS Comparison
ON CaseComparisons.ComparisonResult_Id = Comparison.Id

(对于所有其他联接也类似)。

关于sql - 如何在 JOIN-ed 表上执行 JOIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9010041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com