我设计一个查询有一个问题:选择少的列表
我要选择基于标准的一些记录
(SELECT COL_1, COL_2,COL_3 FROM TABLE_1 WHERE COL_3 = 'CND')
现在我需要从两个数据库中选择记录基于这些结果
(SELECT XX_1, XX_2 FROM TABLE_2 WHERE TABLE_2.XX1 = TABLE_1.COL1 (from filtered results in step 1)
(SELECT YY_1, YY_2, YY_3 FROM TABLE_3 WHERE TABLE_3.YY_2 = TABLE_1.COL2) (from filtered results in step 1)
我需要在单个表查看结果
XX_1, XX_2, YY_1, YY_2, YY_3
提到列必须等于在结果只有具备这样的平等纪录将被取回。
我需要上百万的记录本上运行,所以性能被认为是
这会在Java类中使用,所以请不要认为我不能因为执行任何数据库特定/ SQL命令除读取之外,我不拥有任何数据库权限。
希望我清楚。如果没有,我会解释疑惑。
我想是这样的
SELECT *
FROM TABLE_2
JOIN
(SELECT COL_1,
COL_2,
COL_3
FROM TABLE_1
WHERE COL_3 = 'CND'
GROUP BY COL_1) TMP_TABLE
ON (TMP_TABLE.COL_1 = TABLE2.XX_1)
但我得到视图/表不存在 - Oracle错误。
你应该阅读http://en.wikipedia.org/wiki/Join_(SQL) – YXD 2012-03-13 11:13:11