简体   繁体   English

SQL-查询字符串请求

[英]SQL - Query String Request

照片表

项目表

Photos.Pr_ID is foreign key for Projects.Pr_ID Photos.Pr_IDProjects.Pr_ID 外键

I need Project.Name, Project.Pro_ID, COUNT Photo.PID for each Photo.Pr_ID and TOP 1 Photos.P_Path for that project. 我需要每个项目的Project.Name,Project.Pro_ID,COUNT个Photo.PID和该项目的TOP 1 Photos.P_Path I'm giving User_Id as a condition parameter to query. 我将User_Id作为要查询的条件参数。 The result should be GROUP BY Projects.Pro_ID as well. 结果也应该是GROUP BY Projects.Pro_ID

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

This should get you at least relatively close to the results you are looking for. 这应该至少使您相对接近要寻找的结果。 This assumes the P_Path value is duplicated for all Projects. 假定所有项目的P_Path值都重复。 I prefer not to do a SELECT TOP 1 in a subquery wherever possible. 我不希望在子查询中尽可能执行SELECT TOP 1。

@Jacob HI made necessary changes. @Jacob HI进行了必要的更改。

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

But result shows me recurrent Projects.Pro_ID. 但是结果显示了我经常出现的Projects.Pro_ID。 Lastly I just need to get a Project ID once. 最后,我只需要获取一次Project ID。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM