2013-11-29 2 views
1

таблица event_viewsПодсчет просмотров (реляционная база данных)

ID + EVENT_ID + VIEW_DATE + MEMBER_ID 

стол member_city_access

ID + MEMBER_ID + CITY_ID + PRIMARY(not PK) + VIEWING 

табличные города

ID + TITLE 

Я пытаюсь получить число просмотров за событие из членов в определенном городе.

Это то, что у меня есть

SELECT COUNT(`event_views`.`id`) c FROM `event_views` 
    LEFT JOIN `member_city_access` city ON city.`member_id` = `event_views`.`member_id` 
    LEFT JOIN `cities` on cities.id = city.city_id WHERE (city.city_id = '92' AND city.`primary` = 'on') 
    AND `event_views`.`view_date` >= '20131103' 
    AND `event_views`.`view_date` < '20131110' 

Я хочу знать, если я использую право «JOINS» для подсчета, так как цифры не совместив с событиями, так что в моем докладе он показывает (для 1 город)

EVENTS ADDED = 0 , EVENTS VIEWED = 3 
+0

Спасибо. отредактирован для отображения запроса. –

ответ

0

Этот запрос возвращает все виды, которые у вас есть, которые соответствуют вашему предложению where. Если вы хотите разделить их по событию, вам необходимо группировать по событию:

SELECT `event_views`.`id`,COUNT(`event_views`.`id`) c 
FROM `event_views` 
LEFT JOIN `member_city_access` city 
    ON city.`member_id` = `event_views`.`member_id` 
LEFT JOIN `cities` 
    ON cities.id = city.city_id 
WHERE city.city_id = '92' 
    AND city.`primary` = 'on' 
    AND `event_views`.`view_date` >= '20131103' 
    AND `event_views`.`view_date` < '20131110' 
GROUP BY `event_views`.`id` 
+0

Я вижу. добавил: «GROUP BY» и теперь она возвращает 1 вместо общей –

+0

на самом деле это did'nt работать, так как я не получаю «COUNT», но список 1-х –

+0

@ maximl337. Вероятно, это не подходящий столбец для группировки. К какому столбцу вы хотите группировать? city.id? –

Смежные вопросы