2017-07-27 2 views
2

Ich habe 2 Tabellen: Customer und SubAccount.
Customer(customerId, customerName, address, city, state)
SubAccount(subAccountID, subAccountName, customerID, subAddress, subCity, subState)
Ich möchte wie so die Eltern Kunde und jedes ihrer Unterkonten wählen:SQL wählen Eltern und Kind aus verschiedenen Tabellen

+------------+---------------+ 
| Customer | SubAccount | 
+------------+---------------+ 
| Customer1 | null   | 
| Customer1 | SubAccount1 | 
| Customer1 | SubAccount2 | 
| Customer2 | null   | 
| Customer2 | SubAccount1 | 
| Customer3 | null   | 
| Customer3 | SubAccount1 | 
+------------+---------------+ 

jedoch eine einfache

SELECT Customer.CustomerName, SubAccount.subAccountName 
FROM Customer 
LEFT JOIN SubAccount ON SubAccount.CustomerId = Customer.CustomerID 

funktioniert nicht tun. es zeigt nur

+------------+---------------+ 
| Customer | SubAccount | 
+------------+---------------+ 
| Customer1 | SubAccount1 | 
| Customer1 | SubAccount2 | 
| Customer2 | SubAccount1 | 
| Customer3 | SubAccount1 | 
+------------+---------------+ 

Was ist der richtige Weg, um die Auswahl zu tun?

Antwort

1

UNION All Ihre vorhandene Abfrage mit einer einfachen Abfrage, die CustomerName und NULL (AS SubAccount) aus der Customers-Tabelle (keine Join) auswählen.

+0

Schöne einfache Lösung – Eli

+0

Das funktioniert, außer wenn ein Kunde kein Unterkonto hat, dann erscheint der customerName zweimal –

+0

macht eine 'UNION' und nicht eine' UNION ALL' funktioniert wie ich will. –

Verwandte Themen