1

FKだから私はに、UserIdFKを持っているテーブルを持っていますProductId

複数の商品がある場合は、それぞれUserIdを複数回表示できます。

UserIdたとえば、を持っているが、持っていProductId 1ないそれぞれを取得するためにクエリを実行する必要がありますProductId 2

このようなクエリの作成を開始するにはどうすればよいですか?

編集:

しかし、これが私が問題を抱えている部分です。製品1を持っているすべてのユーザーは製品2を持っているはずですが、持っていないユーザーもいるので、製品2ではなく製品1を持っているユーザーを取得する必要があります。

4

3 に答える 3

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)
于 2012-08-16T13:43:18.303 に答える
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
于 2012-08-16T13:45:42.810 に答える
2

userとの間にブリッジテーブルがあると仮定しますproduct

それ以上の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
于 2012-08-16T13:46:27.317 に答える