我的思路是在表t1和t2中分别查询,将结果做左连接,取出连接后结果的其中一列或几列作为最终结果。写出了形如以下的查询,在Oracle中可以正常执行,但在SQL Server中会报错,该如何实现?
select a, r1 from
(select id as a from t1)
left join
(select id as b, t3.value as r1 from t2, t3 where .....)
on t1.id = t2.id;
错误信息:
消息 156,级别 15,状态 1,第 3 行
关键字 'left' 附近有语法错误。
消息 156,级别 15,状态 1,第 5 行
关键字 'on' 附近有语法错误。
SQL Server只能使用 “表名 left join 表名” 的格式吗?这样倒是能查询,但这样写会不会速度太慢?因为原查询的两个子查询还加了很多条件限制,都加在on的条件里吗?
select t1.id, t2.value from t1 left join t2 on t1.id = t2.id;
而且我原来写的查询的第二个子查询是从两个表查的,应该如何于第一个表做左连接