2016-06-12 82 views
0

我有2個表,我需要選擇和一個查詢計算行,也許有人可以幫助我,我的查詢是:選擇和計算行

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 

,我需要得到的計數響應我的選擇並對它們進行計數的行。

例如輸出(我想要什麼):

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

即我希望有我的領域,我選擇和他們的計數

+0

正是你需要的算什麼?你可以添加一個預期輸出的例子嗎? – newfurniturey

+0

響應條件「c.deleted = false」的行數,在輸出中它看起來像:(row1)first_name --Ihor,last_name - Shmidt,... count(2),row(2)Andre,Agassi .. 。count(2) –

+0

你的要求不明確。請在您的問題中添加希望看到的所需結果的樣本。 – Sam

回答

0

COUNT(*)作爲計數或COUNT(c.id)作爲計數

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

在這種情況下,它只返回一行,但我需要所有行和他們的計數 –

+0

好吧,我明白了你需要什麼。 嘗試下一 –

+0

它具有相同的結果 –

1

「從」查詢的部分,請加計數之前( *)。它會給你的行數。

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

在這種情況下,它只返回一行,但我需要所有行和他們的計數( –

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 ;