sql:另一个表中至少存在一个值

oymdgrw7  于 2021-08-01  发布在  Java
关注(0)|答案(1)|浏览(477)

我正在尝试创建一个表,其中包含名为 user_id 以及 top5_foods (二进制列)。我现在有两张table,一张有所有的table user_id 以及与之相关的食物 user_id 和一个只包含前5种食物的表,根据计算类型选择前5种食物。
如果要创建 user_id 如果他们最喜欢的食物中至少有一种 top_5_food 表中,输入 top5_foods 等于1,否则等于0。
如下所示:

user_id     top5_foods
----------------------
34223          1
43225          0
34323          1

我试过使用 CASE 但它只是复制了 user_id 当它发现食物在前5个食物表中时,选择s并标记1或0。但我不想重复。你能帮忙吗?
非常感谢你

jexiocij

jexiocij1#

如果我理解正确的话 left join 和聚合:

select uf.user_id,
       (count(t.food_id) > 0) as top5_foods
from user_foods uf left join
     top5_foods t
     on uf.food_id = t.food_id
group by uf.user_id;

相关问题