MSSQL 2012 - 返回子查询中的多个列

时间:2013-07-03 07:17:02

标签: sql sql-server subquery

我想通过子查询返回多个列。

E.G,

select a.name, a.age
       from table1 a, ( select b.race, b.weight from table2 b where dateDiff(dd, b.date1, b.date2 ) < 30 )
where a.age > 24

有些人说“只使用连接” - 我不希望子查询中的dateDiff影响父查询的结果。同样,我的真实查询比这更复杂,但这应该足以解释我的问题。

1 个答案:

答案 0 :(得分:3)

使用左连接执行此操作,左连接将返回NULL值

SELECT a.name, b.score, ...
FROM (select id, name, ... from table1 where ???) a
LEFT JOIN (select id, score, ... from table2 where ???) b on (a.id = b.id)
WHERE clause