2016-05-17 4 views
0

existiert i zwei Tabellen:LEFT JOIN Wie kann ich wo, wenn rechtes Feld

Benutzer (verwendete Felder in Abfrage) ->

|uuid|name|last_name|email|rol  |status| 
|1234|abcd| abc |[email protected]|pre-thunder| 1 | 
|5678|efgh| efg |[email protected]|pre-thunder| 1 | 

Und documentation_thunder Tabelle (verwendete Felder in Abfrage) ->

|id|id_thunder|doc_type| 
|1 |1234  |image | 

ich versuche, alle Datensätze auf meinem linken Tisch zu bekommen aber zusätzliche i eine Zählung von meiner rechten Tabelle erhalten:

SELECT 
users.uuid, 
users.email, 
users.name, 
users.last_name, 
COUNT(documentation_thunder.id) as documentation// i need to know how many documents have the user 
FROM users 
LEFT JOIN documentation_thunder 
    ON users.uuid = documentation_thunder.id_thunder 
WHERE 
users.status = 1 AND users.rol = 'pre-thunder' AND (documentation_thunder.doc_type = 'image' OR documentation_thunder.doc_type IS NULL) 

Diese Abfrage gibt nur den ersten Benutzer zurück, aber ich brauche alle Benutzer zurück, egal ob sie Dokumente haben.

Irgendeine Idee? wie mache ich es?

Antwort

0

Da Sie für jeden Benutzer eine count zurückgeben möchten, sollten Sie auch group by verwenden. Vielleicht ist das, was Sie wollen:

SELECT 
users.uuid, 
users.email, 
users.name, 
users.last_name, 
COUNT(documentation_thunder.id) as documentation 
FROM users 
LEFT JOIN documentation_thunder 
    ON users.uuid = documentation_thunder.id_thunder 
WHERE 
users.status = 1 AND users.rol = 'pre-thunder' AND 
(documentation_thunder.doc_type = 'image' OR documentation_thunder.doc_type IS NULL) 
GROUP BY users.uuid 
+0

Whoooaaaa Sie sind die Besten. Danke Giorgos –