在我们的网站上,客户可以保存一个或多个愿望清单'根据类型,价格等描述他们想要购买什么的记录。然后我们使用这些记录每天向他们发送有关符合其要求的新产品的电子邮件。
我需要一次查询客户的愿望清单记录,并输出今天添加的所有使用存储过程匹配的记录。然后,客户可以在其“帐户”页面中轻松查看任何匹配的产品,我们也可以使用电子邮件的代码。
示例产品表
ID:1243
ID:2342
ID:6456
ID:3423
ID:7656
示例愿望清单记录客户#2
AccountID:2
AccountID:2
所以我需要将AccountID传递给存储过程并输出任何与Wishlist记录匹配的产品。
到目前为止,这是将两个心愿单记录放入临时表:
CREATE PROCEDURE dbo.MATCH_CUSTOMER_REQS
@AccountID int
AS
BEGIN
/* select all wishlists */
INSERT INTO #TempTable (ProductType,Brand,MaxPrice,Colour)
SELECT
ProductType,
Brand,
MaxPrice,
Colour
FROM Accounts_Wishlists
WHERE fk_AccountID=@AccountID
END
我不知道如何循环并整理所有匹配产品的列表。
非常感谢。
答案 0 :(得分:0)
请试试这个:
SELECT b.ProductType, b.Brand, b.Price, b.Colour
FROM Accounts_Wishlists AS a
JOIN PRODUCTS AS B
ON b.ProductType = a.ProductType
AND b.Brand = a.Brand
AND b.Price <= a.MaxPrice
AND (a.Colour = b.Colour OR a.Colour is null)
WHERE a.AccountID = @AccountID