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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据另一个表中的条件显示表中的列相关的知识,希望对你有一定的参考价值。

有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;
答案

您可以在子查询中用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是构建表之间关系的常用列。

以上是关于根据另一个表中的条件显示表中的列的主要内容,如果未能解决你的问题,请参考以下文章

Oracle SQL:根据在另一个表中给定条件的列中找到的值插入

根据另一个表中的列值选择一个表中的行?

如何根据从另一个表中选择的结果更新一个表中的列

用另一个表中的列值替换列的空值

根据另一个工作表中的可见范围删除行

将一个表中的值链接到另一个表,并根据 sql 中另一个表中的列对一个表进行切片