SQL - 左外连接的替代方案

时间:2013-09-24 13:06:13

标签: sql oracle odbc left-join

在SQL中有一种标准方法可以将多个行连接到一个表,同时也是0? 这是一个例子:

SELECT t1.id, COUNT(t2.*)
FROM t1 LEFT OUTER JOIN t2 ON ( t1.id = t2.id )
GROUP BY t1.id

我需要一个替代方案,因为我将odbc用于不同的数据库,而在某些数据库中则不支持左连接。

2 个答案:

答案 0 :(得分:6)

SELECT 
  t1.id, 
  (SELECT COUNT(*) FROM t2 WHERE t2.id = t1.id) as t2_count 
FROM t1

答案 1 :(得分:0)

两个选项: 选项1:使用(+)运算符:

SELECT t1.id, COUNT(t2.*)
  FROM t1, t2
 WHERE t2.id(+) = t1.id
 GROUP BY t1.id

我不知道它是否适用于所有司机。适用于所有驱动程序的选项2是创建视图并改为创建视图。