【发布时间】:2015-08-14 14:13:07
【问题描述】:
我正在尝试编写一个返回 Table1 的 SQL 查询,它有 10 列。该表由一个主键 ID、4 个外键 ID 列和 5 个我想要返回但不更改的其他列组成。目标是进行连接,将外键 ID 替换为其他表中保存的描述。
这是第一个 FK Id 的尝试:
Select * from Table1 t1
left join Table2 t2
on t1.BranchId = t2.BranchId;
此左连接返回 table2 的描述,但不替换它。
这是另一个带有第一个 FK Id 的:
Select t2.BranchName from Table1 t1
left join Table2 t2
on t1.BranchId = t2.BranchId;
这会返回我想要的名称,但不会完全返回 table1。
为了举例,您可以假设 OtherName3、OtherName4、OtherName5 分别位于表 Table3、Table4、Table5 中。
这对于有经验的 SQL 开发人员来说可能看起来微不足道,但我很难弄清楚语法。
谢谢!
【问题讨论】:
-
“替换它”是什么意思?
-
明确指定您想要的每一列:
select t1.col1, t1.col2, t2.col1, t3.col2 ... -
当 table2 由 id 及其名称组成时,将 Table1 中的
BranchId替换为 table2 中的名称 -
Gordon 和我的回答都应该正是您所需要的,您需要对实际的列名进行一些按摩。
-
好的,我试试看。看起来像我所指的
标签: sql sql-server database sql-server-2008 join