【发布时间】:2014-10-10 21:15:55
【问题描述】:
如何对具有公共列但没有 A 或 B 的主键的表 A 和 B 进行左连接。
公共列可能在两个表中都有一条或多条记录。我想显示表 A 中的所有行,并从 B 中为 A 中的这些记录提取其他数据。这可能吗?
表 A
Column1
1123
1123
1123
2234
2234
3344
表 B
Column1
1123
2234
2234
2234
2234
期望的输出
A.Column1 B.Column1
1123 1123
1123 1123
1123 1123
2234 2234
2234 2234
3344 NULL
【问题讨论】:
-
是的,左连接应该可以工作。 select * from A left join B on A.col = B.col
-
@Rajesh left join on A on B with non primary key 输出的记录多于表 A 中的记录。我使用了错误的连接吗?
-
您只想从 B 中选择一个值吗?你能给出样本数据和预期结果来试试吗
-
是的,对于表 A 中的许多记录,表 B 将只有一个记录。例如表 A 可能有 1、2、3 条或更多 ID1122 记录,而表 B 只有 1 条 ID1122 记录
-
我已经添加了一个答案,检查它是否有效,然后你可以接受。
标签: sql sql-server-2008