Справка SQL - Фильтр по идентификатору пользователя - PullRequest
0 голосов
/ 05 января 2011
SELECT     projectID, urlID, COUNT(1) AS totalClicks, projectPage,
                          (SELECT     COUNT(1)
                            FROM          tblStatSessionRoutes, tblStatSessions
                            WHERE      tblStatSessionRoutes.statSessionID = tblStatSessions.ID AND tblStatSessions.projectID = tblAdClicks.projectID AND 
                                                   (tblStatSessionRoutes.leftPageID = tblAdClicks.projectPage OR
                                                   tblStatSessionRoutes.rightPageID = tblAdClicks.projectPage)) AS totalViews
FROM         tblAdClicks
GROUP BY projectID, urlID, projectPage
ORDER BY projectID, urlID

У tblProjects есть поле UserID, и мне нужен этот запрос, чтобы показывать только записи, где проект имеет userID = 5, чтобы не показывать всю статистику для всех проектов от всех пользователей

Ответы [ 2 ]

2 голосов
/ 05 января 2011

Наивно:

SELECT     projectID, urlID, COUNT(1) AS totalClicks, projectPage,
                          (SELECT     COUNT(1)
                            FROM          tblStatSessionRoutes, tblStatSessions
                            WHERE      tblStatSessionRoutes.statSessionID = tblStatSessions.ID AND tblStatSessions.projectID = tblAdClicks.projectID AND 
                                                   (tblStatSessionRoutes.leftPageID = tblAdClicks.projectPage OR
                                                   tblStatSessionRoutes.rightPageID = tblAdClicks.projectPage)) AS totalViews
FROM         tblAdClicks
WHERE projectID IN (SELECT projectID FROM tblProjects WHERE userID = 5)
GROUP BY projectID, urlID, projectPage
ORDER BY projectID, urlID

Но может быть лучше с объединением.Как всегда, проверьте ваш план выполнения

1 голос
/ 05 января 2011

Ну, я не знаю структуру данных, которые у вас есть, но если ничего другого, вы всегда можете присоединиться к следующему подзапросу:

select projectID from tblProjects where userID=5

Относительно того, какие столбцы вы должны использовать для объединения, я не могу вам точно сказать, поскольку я не знаю специфику ваших данных.

...