2012-03-14 2 views
0

У меня есть следующий запрос:Mysql Количество в колонке

SELECT a.feeder_id, b.feeder_pr 
FROM authors_article_feeders a 
LEFT JOIN feeders b ON b.id = a.feeder_id 
WHERE website_id =1 
LIMIT 0 , 30 

что приводит:

feeder_id feeder_pr 
18   2 
18   2 
18   2 
18   2 
32   6 

Что мне нужно изменить вышеуказанный запрос таким образом, что он будет манипулировать этими данными так, что результат будет в конечном итоге с отсчетом каждого feeder_pr, так что в этом случае результат будет:

feeder_pr count 
2   4 
6   1 

Любая помощь провер eciated. Если у вас есть время, опишите свое решение, чтобы я мог учиться на нем, пока я нахожусь в нем.

Все, что я пытался закончилась неточным результатам, как правило, только с одной строки вместо ожидаемого 2.

+1

Что вам нужно, это 'select b.feeder_pr, count (b.feeder_pr) group by b.feeder_pr' с вашими существующими объединениями, вы не можете дать« group by », поэтому в итоге вы получаете одну строку –

+0

@prajeeshkumar, спасибо! –

ответ

3

Вам просто нужно добавить GROUP BY И вы даже не нужно будет стыки

SELECT b.feeder_pr, COUNT(b.feeder_pr) 
FROM feeders b 
GROUP BY b.feeder_pr 
+0

Ах, ха! Спасибо! –

+0

Нет проблем, пожалуйста, не забывайте, что оценка лучше всего показать с помощью галочки :) –

+0

:) Я планирую через 4 минуты, когда это позволит мне;) –

0
SELECT b.feeder_pr, count(a.feeder_id) as count 
FROM authors_article_feeders a 
LEFT JOIN feeders b ON b.id = a.feeder_id 
WHERE website_id =1 
GROUP BY 1 
Смежные вопросы