2016-06-12 15 views
0

I 2 Tabellen haben und ich brauche Zeilen auszuwählen und zu zählen in einer Abfrage, vielleicht mit, dass jemand kann mir helfen, meine Frage ist:Reihen wählen und zählen

SELECT 
    c.id, c.first_name, c.last_name, c.speciality, c.level, c.email, c.skype, c.city, 
    s.status_type, c.status_id, c.linkedin, c.link_cv, c.interview_res, c.createdAt, 
    c.updatedAt, c.recruiter_id, u.first_name AS fname, u.last_name AS lname 
FROM 
    Candidates c 
    JOIN Users u 
     ON c.recruiter_id = u.id 
    JOIN Statuses s 
     ON s.id = c.status_id 
WHERE 
    c.deleted = false 

und ich brauche Zahl der bekommen Zeilen, die meine Auswahl beantworten und sie zählen.

Beispiel Ausgabe (was ich will):

count | fname | lname | ..... | 
--------------------------------- 
3  | Ihor | Shmidt | ... | 
3  | Andre | Agassi | .... | 
3  | Roger | Federer| ..... | 

also ich meine Felder haben will, die mich auswählen und ihre Zählung

+0

Was genau Sie eine Zählung brauchen? Können Sie bitte ein Beispiel für die erwartete Ausgabe hinzufügen? – newfurniturey

+0

Anzahl der Zeilen, die die Bedingung "c.deleted = false" beantworten, in der Ausgabe sieht es so aus: (row1) first_name - Ihor, last_name - Shmidt, ... count (2), Zeile (2) Andre, Agassi .. . count (2) –

+0

Ihre Anforderung ist nicht klar. Bitte fügen Sie eine Stichprobe der gewünschten Ergebnisse hinzu, die Sie in Ihrer Frage sehen möchten. – Sam

Antwort

0

COUNT (*) als Graf oder COUNT (c.id) als Graf

SELECT COUNT(*) as count,c.id, c.first_name, c.last_name, c.speciality, c.level, c.email, 
    c.skype, c.city, s.status_type, c.status_id, c.linkedin, c.link_cv, c.interview_res, 
    c.createdAt, c.updatedAt, c.recruiter_id, u.first_name AS fname, u.last_name AS lname 
    FROM Candidates c 
    JOIN Users u 
    ON c.recruiter_id = u.id 
    JOIN Statuses s 
    ON s.id = c.status_id 
    WHERE c.deleted = false; 
+0

in diesem Fall ist es nur eine Zeile zurück, aber ich brauche alle Zeilen und ihre Anzahl –

+0

Ok, ich verstehe was Sie brauchen. nächsten Versuchen –

+0

es gleiche Ergebnis –

1

Vor der „von“ Teil der Abfrage, Zahl fügen Sie bitte (*). Es gibt Ihnen die Anzahl der Zeilen.

Select ......, count (*) from Candidates c 
JOIN Users u ON c.recruiter_id = u.id 
JOIN Statuses s on s.id = c.status_id 
WHERE c.deleted = false; 
+0

in diesem Fall es gibt nur eine Zeile zurück, aber ich brauche alle Zeilen und ihre Anzahl ( –

0
SELECT c.id, (SELECT COUNT(*) FROM Candidates c 
JOIN Users u ON c.recruiter_id = u.id 
JOIN Statuses s ON s.id = c.status_id 
WHERE c.deleted = false) AS count FROM Candidates 
c JOIN Users u ON c.recruiter_id = u.id 
JOIN Statuses s ON s.id = c.status_id 
WHERE c.deleted = false ; 
Verwandte Themen