gpt4 book ai didi

mysql - SQL选择属于同一对象的用户

转载 作者:行者123 更新时间:2023-11-29 12:00:40 24 4
gpt4 key购买 nike

我设置了一个 MySQL 数据库,其中有一个 User、Project 和 ProjectUser 表。 ProjectUser 表具有 UserID 和 ProjectID 并将用户映射到项目。我希望能够查询两个不同用户有哪些共同项目。因此,如果 Bob 属于项目 A、B、C、D,而 Joe 属于项目 C、D、E、F...,那么当我知道 Bob 和 Joe 的 UserID 时,我想选择项目 C 和 D 的信息。

最佳答案

假设这是您提供的元数据和示例。

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表中的UserIDProjectID记录是唯一的,您可以通过以下方式获取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/

关于mysql - SQL选择属于同一对象的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32431449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com