SQL从2个不同的表中选择

SQL从2个不同的表中选择,sql,postgresql,Sql,Postgresql,我试图从两个表中选择数据,但我无法找到正确的方法。我有两张桌子——贷款和请求。 Loans有与此特定查询相关的字段,例如status、loan_id。另一方面,requests表也有一些字段。我的查询试图从以下两个表中获取数据: SELECT a.request_id, a.request_date, a.customer_id, a.request_type, a.target_customer, a.customer_id, a.agent_n

我试图从两个表中选择数据,但我无法找到正确的方法。我有两张桌子——贷款和请求。 Loans有与此特定查询相关的字段,例如status、loan_id。另一方面,requests表也有一些字段。我的查询试图从以下两个表中获取数据:

SELECT a.request_id,
    a.request_date,
    a.customer_id,
    a.request_type,
    a.target_customer,
    a.customer_id,
    a.agent_number,
    a.merchant_number,
    a.bill_reference,
    d.loan_id,
    a.amount
   FROM loans d,
    requests a
    WHERE d.loan_status=12
这将返回每个记录中具有相同值的loan_id字段的结果。
备注:此loan_id列可以为空,因为并非所有请求都是贷款申请。

您必须使用类似Join的方法

SELECT a.request_id,
a.request_date,
a.customer_id,
a.request_type,
a.target_customer,
a.customer_id,
a.agent_number,
a.merchant_number,
a.bill_reference,
d.loan_id,
a.amount
 FROM loans d inner join
requests a
on d.loan_status=12

在请求表中应该有一个字段(例如loan_id),该字段引用loan表中的loan_id。在这种情况下,您必须使用以下查询

SELECT a.request_id,
a.request_date,
a.customer_id,
a.request_type,
a.target_customer,
a.customer_id,
a.agent_number,
a.merchant_number,
a.bill_reference,
d.loan_id,
a.amount
 FROM requests a left join  loans d on a.loan_id=d.loan_id
  where d.loan_status=12

您将如何连接这两个表?这些表之间应该有某种关系。我猜是通过loan_id?好吧,让我试试……这将产生笛卡尔积!!。你需要用相关列连接两个表关系数据库依赖于表之间的连接(关系)。您得到的结果代表了两者的笛卡尔乘积:它肯定需要是左连接,因为并非每个请求都会产生贷款,正如作者所描述的那样+需要两者之间的关系,而不仅仅是d.loan_status=12。