2016-07-25 48 views
0

Ich habe zwei Tabellen: Konten und ClansWählen Sie leere Clans aus der Datenbank

Es gibt eine hasMany Beziehung zwischen diesen beiden.

Ein Clan kann mehrere Konten haben: accounts.clanId Punkte clans.clanId

Wie kann ich alle leeren Clans auswählen, die alle Konten nicht haben?

+1

See [diese große Erklärung schließt sich] (http: // blog.codinghorror.com/a-visual-explanation-of-sql-joins/) –

Antwort

3

Eine Möglichkeit ist es, eine LEFT JOIN zwischen den beiden Tabellen zu tun und diese Clan Aufzeichnungen behalten, die nicht auf irgendwelche Konten Karte hat:

SELECT c.* 
FROM clans c 
LEFT JOIN accounts a 
    ON c.clanId = a.clanId 
WHERE a.clanId IS NULL 
0
SELECT * FROM CLANS C 
WHERE C.clanId NOT IN (SELECT ClanID FROM ACCOUNTS)