【发布时间】:2020-02-11 17:45:57
【问题描述】:
我有一个主表 (TableA),我要加入 TableB,但我只想包含两个表的 ColumnB 匹配的 TableB 的第一条记录。我已经让它在下面的查询中工作,除了我还需要包含 TableA 的记录,其中 TableB 不存在匹配的记录(即在下面的查询中 b.ColumnA 将为空)。我明白为什么我在“OR b.ColumnA = null”下面的行不起作用,但我正在努力寻找可行的解决方案。
任何合理的方法也包括 TableA 的记录,而 TableB 中不存在匹配的记录
SELECT b.ColumnA, a.ColumnA, a.ColumnB
FROM TableA a
LEFT JOIN TableB b ON b.ColumnB = a.ColumnB
WHERE b.ColumnA = (SELECT TOP 1 bb.ColumnA FROM TableA aa LEFT JOIN TableB bb ON bb.ColumnB = a.ColumnB)
OR b.ColumnA = null
【问题讨论】:
标签: sql sql-server left-join