Невозможно присоединиться из 3 разных таблиц - MySql

Я изо всех сил пытаюсь понять, возможен ли этот запрос. У меня есть 3 таблицы: Пользователь, Учетная запись, Кредит. 2 пользователя связаны учетной записью, и любые ссуды, предоставленные между ними, привязываются к account_id. Однако, когда я хочу показать данные в таблице, я хочу показать имя заемщика из таблицы пользователей и сведения о ссуде из таблицы ссуд. но на него есть ссылка из lenders_id в таблице account.

Вот ERD:

Практический пример: если бы вы были кредитором и хотели бы перейти на панель управления, чтобы увидеть все выданные вами ссуды, но хотели бы увидеть имена заемщиков, основную сумму, процентную ставку и т. Д. И ничего на самом деле об аккаунте.

Я хочу, чтобы итоговая таблица выглядела примерно так:

BorrwerName | PrincipalAmount | InterestRate | Дата погашения | Отношения

Что у меня есть до сих пор

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. это переменная, которую мне нужно передать, чтобы узнать, чьи ссуды отображать. Я очень потерян, любая помощь была бы отличной.

2 ответа

Решение

Просто добавьте предложение 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;

Вы можете добавить 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 столбец для фильтрации по нему.

Другие вопросы по тегам