无法从 3 个不同的表加入 - MySql

Unable to join from 3 different tables - MySql

我很难理解这个查询是否可行。我有 3 tables,用户,账户,贷款。 2 个用户通过一个帐户链接,并且他们 2 之间促成的任何贷款都链接到 account_id。但是,当我想在 table 中显示数据时,我想显示用户 table 中的借款人姓名以及贷款 table 中的贷款详细信息。但它是从帐户 table.

中的 lenders_id 引用的

这是 ERD:

一个实际的例子是,如果你是贷款人,想去仪表板查看你已发放的所有贷款,但想查看借款人的姓名、本金金额、利率等等,与帐户无关。

我希望最终的 table 看起来像这样:

BorrwerName |本金金额 |利率 |还款日期 |关系

到目前为止我有什么

SELECT user.first_name, user.last_name, loan.principal, loan.interest_rate, 
loan.repayment_date, account.relationship
FROM user
INNER JOIN account ON account.borrower_id = user.id
INNER JOIN loan ON loan.account_id = account.id

这里的问题是我什至没有在哪里引用 Lender_ID。这是我需要传递给查询要显示的贷款的变量。我很迷茫,任何帮助都会很棒。

您可以添加一个 WHERE 子句:

SELECT u.first_name, u.last_name, l.principal, l.interest_rate, 
l.repayment_date, a.relationship
FROM user u JOIN
     account a
     ON a.borrower_id = u.id JOIN
     loan l
     ON l.account_id = a.id
WHERE a.lender_id = ?;

您不需要 SELECT 列来过滤它。

只需在您的查询中添加 where 子句:

SELECT user.first_name, user.last_name, loan.principal, loan.interest_rate, 
loan.repayment_date, account.relationship
FROM user
INNER JOIN account ON account.borrower_id = user.id
INNER JOIN loan ON loan.account_id = account.id
where account.lender_id = value_to_be_searched;