假设这是您提供的元数据和示例。
create table User (UserID int, Name varchar(200));
create table Project (ProjectID int, Name varchar(200), Information varchar(200));
create table ProjectUser (UserID int, ProjectID int );
INSERT INTO User VALUE (1,'Bob'),(2,'Joe');
INSERT INTO Project VALUE (1,'A','First'),(2,'B','Second'),(3,'C','Third'),(4,'D','Fourth'),(5,'E','Fifth'),(6,'F','Sixth');
INSERT INTO ProjectUser VALUE (1,1),(1,2),(1,3),(1,4),(2,3),(2,4),(2,5),(2,6);
假设 ProjectUser 表中的记录对于 UserID 和 ProjectID 是唯一的,您可以通过以下方式获取 Bob 和 Joe 共享的项目的详细信息:
SELECT Project.* FROM Project WHERE Project.ProjectID IN
(
SELECT Project.ProjectID
FROM ProjectUser
INNER JOIN User
ON User.UserID = ProjectUser.UserID
INNER JOIN Project
ON Project.ProjectID = ProjectUser.ProjectID
WHERE User.Name IN ('Bob','Joe')
GROUP BY Project.ProjectID
HAVING COUNT(*) > 1
)
试试http://sqlfiddle.com/