2017-05-08 99 views
-1

Photos TableSQL - 查询字符串请求

Projects Table

​​是Projects.Pr_ID

外键我需要Project.Name,Project.Pro_ID,COUNT Photo.PID每个Photo.Pr_ID和该项目的TOP 1 Photos.P_Path。我将User_Id作为查询的条件参数。结果应该是GROUP BY Projects.Pro_ID以及。

回答

0
SELECT Project.Name, Project.Pro_ID, sub.P_Path, COUNT(Photo.PID) 
FROM Project 
JOIN Photo ON Project.Pro_ID = Photo.Pro_ID 
JOIN (SELECT P_Path FROM Projects GROUP BY Pro_ID, P_Path) sub 
ON sub.Pro_ID = Project.Pro_ID 
GROUP BY Projects.Pro_ID, Project.Name, sub.P_Path 

这应该让你至少相对接近你正在寻找的结果。这假设所有项目的P_Path值都是重复的。尽可能不要在子查询中执行SELECT TOP 1。

0

@Jacob H 我做了必要的修改。

SELECT Projects.Name, Projects.Pro_ID, sub.P_Path, COUNT(Photos.PID) 
FROM Projects 
JOIN Photos ON Projects.Pro_ID = Photos.Pr_ID 
JOIN (SELECT Pr_ID,P_Path FROM Photos GROUP BY Pr_ID, P_Path) sub 
ON sub.Pr_ID = Projects.Pro_ID 
GROUP BY Projects.Pro_ID, Projects.Name, sub.P_Path 

但结果显示我经常使用Projects.Pro_ID。最后,我只需要获得一次项目ID。