我有两个表Table A
和Table B
。两者都通过列[Project]
链接。
Table A
表现为真实的客户数据。 Table B
是所有可能值的表(用于验证)。
换句话说,Table A
中的一行将有一个项目。但是在Table B
中,该特定项目将具有许多不同的品种(“月”,“年”,“任务”,“组织”)
我想要的是将一对一表A与表B连接起来并显示[组织]。
我正在使用的SQL代码是:
select
a.[Amount], a.[project], b.[organization]
from
Table_A as a
left join
Table_B as b on a.[Project] = b.[Project]
这有效,但不一对一。它将复制表A中的值,以显示每个项目在表B中的所有值。
有办法避免这种情况吗?
欢呼
编辑
表A中的屏幕截图:在此示例中,我正在使用项目'4062'。
表B(完整)的屏幕快照,具有相同的项目-您会看到所有值:
当我进行加入时,这就是我得到的(添加了PayID-在表A中是唯一的以显示重复项):
答案 0 :(得分:1)
如果您只需要b
中的任意一行,则可以使用outer apply
:
select a.[Amount], a.[project], b.[organization]
from Table_A a outer appy
(select top (1) b.*
from Table_B b
where a.[Project] = b.[Project]
) b;