如何将第一个查询的输出(有两个值)作为第二个的输入?

时间:2011-01-20 06:12:15

标签: sql oracle oracle10g nested-queries

我得到2个名字作为第一个查询的输出.... 例如:保罗,彼得 现在这应该是第二个查询的输入, 这必须显示保罗和彼得的电子邮件ID ....

3 个答案:

答案 0 :(得分:7)

对于嵌套查询,我强烈推荐WITH子句。它使得复杂的查询数量级更容易理解/构造/修改:

WITH 
   w_users AS( -- you can name it whatever you want
      SELECT id
        FROM users
       WHERE < long condition here >
   ),
   w_other_subquery AS(
      ...
   )
SELECT email_id
  FROM ...
 WHERE user_id IN (SELECT id FROM w_users)  

答案 1 :(得分:4)

你可以这样使用

LIKE

SELECT USER_ID,EMAIL_ID FROM USERS where user_id IN 
(SELECT PRODUCT_MEMBERS FROM PRODUCT WHERE PRODUCT_NAME='ICP/RAA');

只需使用IN子句'='用于匹配一个结果

答案 2 :(得分:1)

您可以使用In Command获取结果 例如:

SELECT  email FROM tableName WHERE (Name IN ('paul', 'peter'))