2016-07-31 9 views
0

У меня есть три таблицы в MySQL:Выбор из другой таблицы на основе значения соотношения таблиц

1) bank_accounts

- accounts_id (PRIMARY) 
- accounts_account_number (UNIQUE) 

2) bank_accounts_customers

- accounts_customers_id (PRIMARY) 
- accounts_customers_account_id (INDEX) 
- accounts_customers_customer_id (INDEX) 

3) bank_customers

- customers_id (PRIMARY) 
- customers_customer_number (UNIQUE) 
- customers_title 
- customers_first_name 
- customers_middle_name 
- customers_last_name 

Мне нужно, чтобы получить номер счета, хранящийся в bank_accounts стола и номер клиента хранится в bank_customer таблицы. Таблица bank_accounts_customers хранит ссылку между клиентами и учетными записями, которые у них есть, поэтому несколько клиентов могут делиться одной учетной записью. Все таблицы в базе данных индексируются и используют внешние ключи для их связывания.

Im уверен, если INNER JOIN или РЕГИСТРИРУЙТЕСЬ будет работать и как это сделать?

Я приложил изображение базы данных (это не 100% завершено). https://s32.postimg.org/ia56fgjth/Screen_Shot_2016_07_31_at_5_51_38_pm.png

Запрос, который я попытался это:

SELECT `bank_accounts`.`accounts_account_number`, `bank_customers`.`customers_customer_number` 
FROM `bank_accounts`, `bank_customers` 
INNER JOIN `bank_accounts_customers` 
ON bank_accounts_customers`.`accounts_customers_account_id` = `bank_accounts`.`accounts_id` 
+0

Если возможно, показать запрос. Мы здесь, чтобы помочь, если вы столкнулись с какой-либо проблемой. –

+1

Итак, присоединяется звуки о правильном ... что ты пробовал? Или 0 усилий и просто спросить? –

+0

Извините, @FirstOne Я просто не знаю, как использовать их в этом проекте. –

ответ

0
SELECT ba.accounts_account_number, bc.customers_customer_number 
FROM bank_accounts AS ba 

INNER JOIN bank_accounts_customers AS bac 
ON bac.accounts_customers_account_id = ba.accounts_id 

INNER JOIN bank_customers AS bc 
ON bc.customers_id = bac.accounts_customers_customer_id 

Должен получить то, что вы хотите.

+0

Спасибо @Philipp, что отлично работает. –

0
select 
ba.accounts_account_number, 
bc.customers_title,bc.customers_first_name, bc.customers_middle_name, bc.customers_last_name 
from bank_accounts ba inner join bank_accounts_customers bac 
on ba.accounts_id = bac.accounts_customers_account_id 
inner join bank_customers bc 
on bac.accounts_customers_customer_id = bc.customers_id 

Попробуйте это .. !!

+0

Спасибо @Vinit Prajapati! –

0

Try This

SELECT ba.accounts_account_number, bc.customers_customer_number 
FROM bank_accounts_customers bac 
INNER JOIN bank_accounts ba on bac.accounts_customers_account_id = ba.accounts_id 
INNER JOIN bank_customers bc on bac.accounts_customers_customer_id = bc.customers_id