根据另一个表中的条件显示一个表中的列

时间:2018-09-10 12:54:33

标签: sql oracle subquery

有2个表的联系人和客户。

**Contact Table**                          
id(primary key)   
org_name                                   
city                                       
state                                     
email 

**Customer Table**   
id(primary key)                                 
created_under_id  
contact_id  
notes  
credit_limit

需要查询以显示所有信用额度超过25000的客户的org_name,城市,州和电子邮件。按其org_name升序显示记录。

我尝试了此查询,但是它不起作用:

SELECT org_name,city,state,email FROM contact  
    WHERE contact.id IN (SELECT customer.id FROM customer  
                  WHERE credit_limit >25000)ORDER BY org_name ASC;

1 个答案:

答案 0 :(得分:0)

您可以在子查询中将customer.id替换为customer.contact_id

或者,您也可以在这些表之间使用JOIN语句:

SELECT c.org_name, c.city, c.state, c.email
  FROM contact c
  LEFT OUTER JOIN customer r
    ON ( c.id = r.contact_id )
 WHERE r.credit_limit > 25000
 ORDER BY c.org_name ASC;

Contact.IDCustomer.contact_id是用于构造表之间关系的公共列。