我不知道具体如何命名这个话题,所以我会尝试解释它。我在MS数据库中有两个表- Sports和UsersSports。在体育桌上,我有运动的清单。在UsersSports表中,我将体育项目分配给用户--每个用户都可以拥有多个体育项目。
CREATE TABLE [dbo].[Sports](
[SportId] [int] PRIMARY KEY IDENTITY(1,1) NOT NULL,
[Sport] [nvarchar](max) NOT NULL)
CREATE TABLE [dbo].[UsersSports](
[UserSportId] [int] PRIMARY KEY IDENTITY(1,1) NOT NULL,
[SportId] [int] NOT NULL REFERENCES [Sports]([SportId]),
[ProfileId] [int] NOT NULL REFERENCES [Profiles]([ProfileId]))我想选择用户的体育,但只有体育,其他用户已分配在UsersSports表。例如,我打足球和篮球,其他用户打篮球和网球,所以指挥应该只选择篮球,因为我们都打篮球。
我只能通过以下命令选择用户的体育项目:
SELECT Sports.SportId, Sport FROM Sports JOIN UsersSports ON Sports.SportId = UsersSports.SportId WHERE UsersSports.ProfileId = '1003'那我怎么能做到这一点呢?谢谢
发布于 2013-12-31 11:13:49
您可以使用SQL:EXIST条件。
以下是一个示例:
SELECT Sports.SportId, Sport
FROM Sports
JOIN UsersSports
ON Sports.SportId = UsersSports.SportId
WHERE UsersSports.ProfileId = '1003'
AND EXISTS
(SELECT 1
FROM UsersSports AS otherUser
WHERE otherUser.ProfileId != '1003'
AND otherUser.SportID = Sports.SportId
)https://stackoverflow.com/questions/20856344
复制相似问题