Невозможно присоединиться из 3 разных таблиц - MySql
Я изо всех сил пытаюсь понять, возможен ли этот запрос. У меня есть 3 таблицы: Пользователь, Учетная запись, Кредит. 2 пользователя связаны учетной записью, и любые ссуды, предоставленные между ними, привязываются к account_id. Однако, когда я хочу показать данные в таблице, я хочу показать имя заемщика из таблицы пользователей и сведения о ссуде из таблицы ссуд. но на него есть ссылка из lenders_id в таблице account.
Практический пример: если бы вы были кредитором и хотели бы перейти на панель управления, чтобы увидеть все выданные вами ссуды, но хотели бы увидеть имена заемщиков, основную сумму, процентную ставку и т. Д. И ничего на самом деле об аккаунте.
Я хочу, чтобы итоговая таблица выглядела примерно так:
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
столбец для фильтрации по нему.