我設計一個查詢有一個問題:選擇少的列表
我要選擇基於標準的一些記錄
(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