下面是我的两个表:
我正在尝试编写一个连接这两个表的查询,并为结果映射表的给定源 ID返回Source_Title和Destination_Title。
我曾尝试编写查询,但我只能解决难题的一部分而不是整个问题。
SELECT Title as SourceTitle
FROM Result Map AS RM
INNER JOIN Table_Result TR ON RM.SourceId = TR.Id
Run Code Online (Sandbox Code Playgroud)
上面的查询为我提供了源的标题,但没有提供目标标题。
本杰明。如果我理解正确,你想要这样的东西:
SELECT TR1.Title AS SourceTitle,
TR2.Title AS DestinationTitle
FROM [Result Map] AS RM
INNER JOIN Table_Result TR1 ON RM.Source_Id=TR1.Id
INNER JOIN Table_Result TR2 ON tr2.Id=RM.destination_id;
Run Code Online (Sandbox Code Playgroud)
查询将返回
SourceTitle DestinationTitle
ABC DEF
Run Code Online (Sandbox Code Playgroud)
首先,不要担心这不仅仅是你。这总是让 SQL 的新手绊倒。我经常看到它。这几乎是 SQL 学习中不可避免的一部分。
我会尽量用文字来做。George K 已经回答了合适的代码。
诀窍是不要将 Table_Result 视为 {从中提取标题的表}。
这不可避免地导致你写:
…
FROM {results table}
INNER JOIN {Table with titles in}
ON {a join for which you can't find the appropriate logic}
Run Code Online (Sandbox Code Playgroud)
您需要根据该表在您的上下文中提供的功能来考虑。这在你的情况下是双重的。来源标题和目的地标题。
这为您提供了一个看起来更像的查询:
…
FROM {result table}
INNER JOIN {table from which you will extract source title}
ON {join which allows you to retrieve a source title}
INNER JOIN {table from which you will extract destination title}
ON {join which allows you to retrieve a destination title}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1508 次 |
最近记录: |