Javascript 用mysql比较两个表
我试图寻找这个问题的答案,但我不确定这个问题是否有答案,因为我不确定如何正确地表达它。。。这里有两张桌子 配方配料表Javascript 用mysql比较两个表,javascript,mysql,database,pymysql,Javascript,Mysql,Database,Pymysql,我试图寻找这个问题的答案,但我不确定这个问题是否有答案,因为我不确定如何正确地表达它。。。这里有两张桌子 配方配料表 Recipe_id|ingredient_id ifqvv |1 ifqvv |2 User_id|ingredient_id 1 |1 1 |2 2 |1 3 |3 用户成分表 Recipe_id|ingredient_id ifqvv |1 ifqvv |2 User_id|ingredient_id 1
Recipe_id|ingredient_id
ifqvv |1
ifqvv |2
User_id|ingredient_id
1 |1
1 |2
2 |1
3 |3
用户成分表
Recipe_id|ingredient_id
ifqvv |1
ifqvv |2
User_id|ingredient_id
1 |1
1 |2
2 |1
3 |3
我需要将这些表格与以下表格进行比较:如果配方和用户成分id完全匹配,则返回1;如果成分大于0,则返回2;如果不匹配,则返回3。例如,对用户1的查询将返回1、用户2和用户3。我不确定这是否是我必须编写的代码,但有人告诉我,这在信息很少的情况下是可能的,这让我来到这里假设您也有一个用户表,您可以通过将用户与配方配料表交叉连接,然后离开加入用户配料表来实现,例如:
选择u.user\u id,ri.recipe\u id,
COUNTui.Component\u id作为可用的\u配料,-用户烹饪此配方所需的配料数量
COUNTri.component\u id作为所需的\u配料,-烹饪此配方所需的配料数量
案例
当COUNTui.component\u id=COUNTri.component\u id时,则“can\u cook”
当COUNTui.component\u id>0时,则“有一些配料”
其他“没有任何成分”
以状态结束
来自用户u
交叉连接配方
左联合用户\u配料ui ONri.component\u id=ui.component\u id和u.user\u id=ui.user\u id
按u.user\u id、ri.recipe\u id分组
按u.user\u id、ri.recipe\u id订购
如果要将其限制为某个用户/配方,只需使用where子句:
其中u.user_id=1和ri.recipe_id='ifqvv'
您可以在这里试用:
如果没有用户表,则可以替换
从用户u和从中选择不同的用户id
假设您也有一个用户表,您可以通过交叉连接用户和配方配料表,然后左连接用户配料表来实现这一点,例如:
选择u.user\u id,ri.recipe\u id,
COUNTui.Component\u id作为可用的\u配料,-用户烹饪此配方所需的配料数量
COUNTri.component\u id作为所需的\u配料,-烹饪此配方所需的配料数量
案例
当COUNTui.component\u id=COUNTri.component\u id时,则“can\u cook”
当COUNTui.component\u id>0时,则“有一些配料”
其他“没有任何成分”
以状态结束
来自用户u
交叉连接配方
左联合用户\u配料ui ONri.component\u id=ui.component\u id和u.user\u id=ui.user\u id
按u.user\u id、ri.recipe\u id分组
按u.user\u id、ri.recipe\u id订购
如果要将其限制为某个用户/配方,只需使用where子句:
其中u.user_id=1和ri.recipe_id='ifqvv'
您可以在这里试用:
如果没有用户表,则可以替换
从用户u和从中选择不同的用户id
这在应用程序代码中通常更容易实现。。运行两个查询,将其存储在数组中,并计算数组差异。。我假设您使用像Node.js这样的服务器端javascript?这通常在应用程序代码中更容易实现。。运行两个查询,将其存储在数组中,并计算数组差异。。我假设您使用像Node.js这样的服务器端javascript?非常感谢,我有一些类似的东西,但是我被困在case语句之后做什么。非常感谢,我有一些类似的东西,但是我被困在case语句之后做什么。