2016-07-31 9 views
0

Ich habe drei Tabellen in MySQL:Auswahl aus einer anderen Tabelle basierend auf Beziehung Tabellen Wert

1) KONTEN

- 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 

Ich brauche die Kontonummer in den KONTEN gespeichert bekommen Tisch und die Kundennummer in der Tabelle bank_customer gespeichert. Die Tabelle bank_accounts_customers speichert eine Verknüpfung zwischen den Kunden und den Konten, die sie haben, so dass mehrere Kunden ein Konto teilen können. Alle Tabellen in der Datenbank sind indiziert und verwenden Fremdschlüssel, um sie zu verknüpfen.

Im nicht sicher, ob INNER JOIN oder JOIN funktionieren würde und wie dies zu tun?

Ich habe ein Bild der Datenbank angehängt (das ist nicht 100% vollständig). https://s32.postimg.org/ia56fgjth/Screen_Shot_2016_07_31_at_5_51_38_pm.png

Die Abfrage, die ich versucht habe, ist:

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

Wenn möglich, versuchen, die Abfrage zeigen. Wir sind hier, um Ihnen zu helfen, wenn Sie irgendein Problem haben. –

+1

Also verbindet klingt ungefähr richtig ... was hast du probiert? Oder 0 Mühe und nur fragen? –

+0

Tut mir leid, @FirstOne Ich bin nur unsicher, wie man sie in diesem Projekt verwendet. –

Antwort

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 

Sollte bekommen, was Sie wollen.

+0

Danke @Philipp, das funktioniert super. –

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 

Try this .. !!

+0

Danke @Vinit Prajapati! –

0

Diese

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