2012-04-18 9 views
1

私は、注文し注文した顧客のすべての電子メールアドレスを取得するためのクエリを書く必要があります。 productId 1で商品を注文した顧客を除外する必要がありますが、SQLは、特定の値を含む要素のセットをチェックします。

お客様がproductId 1で商品を注文した場合や、別の商品IDで商品を注文した場合は、そのIDを含める必要があります。異なる商品IDを持つこの商品は、同じ顧客の別の注文に含まれる可能性があります。

今私はちょっと私の質問に悩まされています。これについて

SELECT DISTINCT [Email] FROM [dbName].[dbo].[Users] 

    INNER JOIN dbo.Orders on dbo.Orders.CustomerId = dbo.Users.UserId 
    INNER JOIN dbo.OrderLines on dbo.OrderLines.OrderId = Orders.OrderId 

    WHERE Users.SubShopID = 1 AND OrderLines.ProductId (continue here?) 
    ORDER BY Email DESC 

事前に感謝

答えて

4

何?

SELECT DISTINCT [Email] FROM [dbName].[dbo].[Users] 

INNER JOIN dbo.Orders on dbo.Orders.CustomerId = dbo.Users.UserId 
INNER JOIN dbo.OrderLines on dbo.OrderLines.OrderId = Orders.OrderId 

WHERE Users.SubShopID = 1 
AND OrderLines.ProductId <> 1 
ORDER BY Email DESC 
+0

が、どのような注文ラインの一つが、1の商品コードを含んでいますし、別の(同じ顧客の)他のProductIDと製品を持っている場合(これが起こることを持っているので)この顧客のemailadressも含まれます – middelpat

+0

同じオーダー内であることを意味しますか?または異なる注文ですか?それが異なる注文の場合、それはうまくいくでしょう、そうでなければ、私に知らせてください私はコードを更新します:) – mattytommo

+2

はい彼らは含まれます。問合せでは、商品1を注文した顧客のみが除外されます。たとえば、顧客が商品1と商品2を注文した場合、商品1の注文行は除外されますが、商品2の注文行は除外されます。明確化のために – weenoid

関連する問題