2012-09-13 38 views
2

數據庫中的兩個表,下面的結構類似。oracle查詢在兩個表中查找匹配

- 我需要TABLE1中的元素列表,其中P1匹配S3並且同時P2匹配S2。

+   TABLE1   +  +   TABLE2   + 
+---------+---------+---------+  +---------+---------+---------+ 
| P1  | P2  | P3  |  + S1  | S2  | S3  | 
+---------+---------+---------+  +---------+---------+---------+ 
| A  | B  | C  |  | P  | B  | A  | 
| B  | B  | C  |  | A  | G  | T  | 
| Z  | K  | R  |  | T  | M  | T  | 
| T  | S  | L  |  | M  | K  | Z  | 
| W  | W  | W  |  | W  | W  | W  | 
+---------+---------+---------+  +---------+---------+---------+ 

所以,結果我得到:

+   RESULT   + 
+---------+---------+---------+ 
| P1  | P2  | P3  | 
+---------+---------+---------+ 
| A  | B  | C  | 
| Z  | K  | R  | 
| W  | W  | W  | 
+---------+---------+---------+ 

的問題:什麼是Oracle查詢,這是否加入,比較和匹配操作。 注意:不鼓勵使用循環。

在此先感謝...

+0

氣味像功課...... –

+0

聽起來像曳... :) – guness

+0

這並不是針對任何規則在這裏SO發佈家庭作業,但如果是這樣,請標記爲這樣。 –

回答

3
SELECT a.* 
FROM TABLE1 a, TABLE2 b 
WHERE a.P1 = b.S3 AND a.P2 = b.S2; 
1

使用INNER JOIN

SELECT table1.* 
FROM table1 INNER JOIN table2 
    ON (table1.P1 = table2.S3 AND table1.P2 = table2.S2); 
+0

我可能會做一些錯誤的事情,但它多次提供一些行。 – guness

+0

@bluebrain它會返回多個行,因爲它在第二個表上多次匹配。 –

+0

所有3個答案都像一個魅力,我應該接受哪一個? – guness