2012-08-16 52 views
1

所以我有一个表有FKUserIdFKProductId写一个查询来选择特定的外键条目给定一个特定的标准

每个UserId可以多次列出,如果他们有多个产品。

我需要查询以获得每个UserId,例如,有ProductId 1,但不是ProductId 2

我该如何开始编写这样的查询?

编辑:

但这里是我有问题的一部分;谁拥有产品1所有用户都应该有产品2,但有的没有,所以我需要得到谁拥有产品1的用户和非产品2

回答

2

- 这是你想要的吗?

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 
2

假设你有userproduct

之间的桥梁表,如果你想要更多的则ID

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 
相关问题