从mySQL检索另一个数据以进行项目推荐


Retrieve another data from mySQL for item recommendation

基本上,我目前正在为我的网站做推荐系统

我在mySQL数据库中有4个表:

用户

  • 用户ID
  • 用户名
  • 密码
  • userLevel

类别

  • 类别ID
  • 类型

项目

  • itemID
  • 名称
  • 价格
  • 数量
  • 类别ID
  • 说明

交易

  • transactionID
  • 类别ID
  • itemID
  • 用户ID

这就是我想要的工作方式,

userID 1(Kyle)购买了笔记本电脑(ItemID 1)、鼠标(ItemID 2)和电池(ItemID 4)

userID 2(Steven)购买笔记本电脑(itemID 1)

userID 3(Jonathan)购买了鼠标(ItemID 2)、电池(ItemID 4)和鼠标垫(ItemID 3)

我希望系统向用户ID 2(Steven)推荐itemID 2(鼠标)、itemID 4(电池)和itemID 3(鼠标垫)

  • 交易表将记录所进行的任何交易

任何帮助都将不胜感激。感谢

查询所做的是获取购买了ItemID=2的All UserID's。然后获取这些用户的ItemID分支。然后应用滤波器以从结果中去除CCD_ 4。试试这个。

Select distinct ItemID 
FROM transaction 
where UserID IN (Select userID FROM Transaction where itemID = 2 ) 
AND ItemID <> 2

像这个

SELECT
    i.itemID,
    i.name,
    u.username
FROM transaction
    INNER JOIN user u ON (u.userID = t.userID)
WHERE u.userID = 2

然后,您必须使用您的语言将结果转换为可读的行。

否则,您将不得不寻找"PIVOT"来将多个购买的商品(多行)转换为一行。

另一种解决方案是使用带有mssql的事务,允许解析结果并返回一行。