使用SQL Server 2008,我试图在列c1上的表1和表2之间进行左连接。
我的想法是,从左表(表1)中,我抓住每一行。从右边(表2)我只得到一个值。
Table 1
--------------------
document varchar(30)
Table 2
--------------------
idTable2 int(30)
document varchar(30)
Sample data TABLE 1
--------------------
3846922
2000762
3064627
Sample data TABLE 2
--------------------
1 3846922
2 2000762
3 3064627
4 2000762
5 3846922
Sample Result
--------------------
3846922 1
2000762 2
3064627 3
我使用this帖子作为指南,但无法达到理想的效果。到目前为止,我得到左表的许多值和许多正确的值。有任何想法吗?以下是我的SQL查询:
SELECT t1.document, t2.idTable2
FROM Table1 t1
LEFT JOIN Table2 t2
ON t1.document =
(
SELECT TOP 1 t2_aux.document
FROM Table2 t2_aux
WHERE t2_aux.document = t1.document
ORDER BY t2_aux.document DESC
)
答案 0 :(得分:1)
DECLARE @t1 TABLE(document varchar(30))
INSERT INTO @t1
VALUES('3846922'),('2000762'),('3064627')
DECLARE @t2 TABLE(idTable2 int,document varchar(30))
INSERT INTO @t2
VALUES(1,'3846922'),
(2,'2000762'),
(3,'3064627'),
(4,'2000762'),
(5,'3846922 ')
select t1.document,min(t2.idTable2) as idTable2 from @t1 t1 inner join @t2 t2
on t1.document = t2.document
group by t1.document
order by idTable2