2010-06-09 27 views
1

我有一個包含兩列的主鍵的表。我想根據兩個輸入數組檢索一組行,每個數組對應一個主鍵列。odp.net SQL查詢從兩個輸入數組中檢索一組行

select pkt1.id, pkt1.id2, ... from PrimaryKeyTable pkt1, table(:1) t1, table(:2) t2 
where pkt1.id = t1.column_value and pkt1.id2 = t2.column_value 

然後,我將這些值與odp.net中的兩個int []綁定在一起。

這將返回我的結果行的所有不同組合。所以如果我期待13行我收到169行(13 * 13)。問題是t1和t2中的每個值都應該關聯。值t2 [4]應與t1一起使用,而不是t2中的所有不同值。

使用不同的解決方案我的問題,但我想知道如果我的方法是錯誤的。任何人有任何關於如何解決這個最好的方法的指針?一種方法可能是在t1和t2中依次使用for循環訪問每個索引,但我不知道什麼會更有效。

編輯:其實不同的解決不了我的問題,它只是它的基礎上我的輸入值

回答

0

(在T2 = 0的值)假設你想在那裏的關鍵在兩個表中存在,在所有行任何位置。

select pkt1.id, pkt1.id2, ... 
from PrimaryKeyTable pkt1 
where pkt1.id in (select column_value from table(:1)) 
and pkt1.id2 in (select column_value from table(:2)) 
+0

我想要的結果收縮到綁定表中的位置。因此表(:1)中的索引4與表(:2)中的索引4相關。 我想知道是否有任何方法可以不使用pl/sql和for-loop – KTrum 2010-06-09 13:21:14