Prz*_*min 5 sql sql-server left-join
如何左连接两个表,仅从第二个表中选择第一行? 

我的问题是跟进: SQL Server:如何加入第一行 我使用了该线程中建议的查询。
CREATE TABLE table1(
  id INT NOT NULL
);
INSERT INTO table1(id) VALUES (1);
INSERT INTO table1(id) VALUES (2);
INSERT INTO table1(id) VALUES (3);
GO
CREATE TABLE table2(
  id INT NOT NULL
, category VARCHAR(1)
);
INSERT INTO table2(id,category) VALUES (1,'A');
INSERT INTO table2(id,category) VALUES (1,'B');
INSERT INTO table2(id,category) VALUES (1,'C');
INSERT INTO table2(id,category) VALUES (3,'X');
INSERT INTO table2(id,category) VALUES (3,'Y');
GO
------------------
SELECT 
table1.* 
,FirstMatch.category
FROM table1
CROSS APPLY (
    SELECT TOP 1 
    table2.id
    ,table2.category   
    FROM table2 
    WHERE table1.id = table2.id
    ORDER BY id
    )
    AS FirstMatch
但是,通过这个查询,我得到了内部连接结果。我想获得左连接结果。所需结果中的 tabel1.id 应为 '2' 和 NULL。怎么做?
| 归档时间: | 
 | 
| 查看次数: | 896 次 | 
| 最近记录: |