Sql server 编写查询以选择给定特定条件的特定外键条目
因此,我有一个表,其中FK代表UserId,FK代表ProductId 如果每个用户ID有多个产品,则可以多次列出 我需要查询以获取每个用户标识,例如,productID1,但productID2 我如何开始编写这样的查询 编辑:Sql server 编写查询以选择给定特定条件的特定外键条目,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,因此,我有一个表,其中FK代表UserId,FK代表ProductId 如果每个用户ID有多个产品,则可以多次列出 我需要查询以获取每个用户标识,例如,productID1,但productID2 我如何开始编写这样的查询 编辑: 但这是我遇到问题的部分;所有拥有产品1的用户都应该拥有产品2,但有些用户没有,因此我需要获得拥有产品1而不是产品2的用户-这是您想要的吗 select distinct userID from yourtable t where t.ProductId=@Produc
但这是我遇到问题的部分;所有拥有产品1的用户都应该拥有产品2,但有些用户没有,因此我需要获得拥有产品1而不是产品2的用户-这是您想要的吗
select distinct userID from yourtable t
where t.ProductId=@ProductID1
and not exists(select UserID from yourtable
where Userid=t.userID and ProductID=@ProductID2)
SELECT
u.[UserID]
, p.[ProductID]
FROM TableA a
LEFT JOIN Users u ON
u.[UserID] = a.[UserID]
LEFT JOIN Products p ON
p.[ProductID] = a.[ProductID]
WHERE a.ProductID = 1
-这是你想要的吗
SELECT
u.[UserID]
, p.[ProductID]
FROM TableA a
LEFT JOIN Users u ON
u.[UserID] = a.[UserID]
LEFT JOIN Products p ON
p.[ProductID] = a.[ProductID]
WHERE a.ProductID = 1
假设您在用户和产品之间有一个桥接表 如果你想要的比身份证还多
SELECT u.user_id, u.name
FROM [user] AS u
INNER JOIN user_product AS up
ON u.user_id = up.user_id
INNER JOIN product as p
ON p.product_id = up.product_id
WHERE p.id = 1
或者您可以只查询您的桥接表
SELECT up.user_id
FROM user_product AS up
WHERE up.product_id = 1
假设您在用户和产品之间有一个桥接表 如果你想要的比身份证还多
SELECT u.user_id, u.name
FROM [user] AS u
INNER JOIN user_product AS up
ON u.user_id = up.user_id
INNER JOIN product as p
ON p.product_id = up.product_id
WHERE p.id = 1
或者您可以只查询您的桥接表
SELECT up.user_id
FROM user_product AS up
WHERE up.product_id = 1