2

数据库中有两个表,结构类似。

-我需要 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 查询是什么。注意:不鼓励使用循环。

提前致谢...

4

3 回答 3

3
SELECT a.*
FROM TABLE1 a, TABLE2 b
WHERE a.P1 = b.S3 AND a.P2 = b.S2;
于 2012-09-13T01:18:38.587 回答
1

您可以使用INNER JOIN来组合两个表。

SELECT  a.*
FROM    table1 a
        INNER JOIN table2 b
            ON a.P1 = b.S3 AND
               a.P2 = b.S2

单击此处了解更多类型的联接(Oracle 文档)

于 2012-09-13T01:18:45.217 回答
1

使用INNER JOIN

SELECT table1.*
FROM table1 INNER JOIN table2 
     ON (table1.P1 = table2.S3 AND table1.P2 = table2.S2);
于 2012-09-13T01:19:13.290 回答