【发布时间】:2022-01-17 02:02:49
【问题描述】:
我正在使用连接表定义两个表之间的关系。我想按许多重叠事物的顺序排列它们。目前,我们正在使用子查询,有没有办法使用连接获得相同的结果?
People FoodTable PeopleFood
ID | NAME ID | Food ID | PeopleId | FoodId
1 BOB 1 Hamberger 1 1 1
2 JOHN 2 Pizza 2 1 2
3 KATY 3 Chicken 3 1 3
4 MILLER 4 Salad 4 2 1
5 AMANDA 5 Sushi 5 2 2
6 2 3
7 3 2
8 3 3
9 4 3
10 4 5
11 5 5
当表以这种方式定义时,我想安排类似于 Bob 的食物口味。 我现在就是这样做的。
SELECT people_id, COUNT(people_id) as count
FROM peopleFood
WHERE food_id IN
(SELECT food_id FROM peopleFood
WHERE people_id = 1)
AND people_id != 1
GROUP BY people_id
ORDER BY count DESC;
-- Result -------------
People_id | count
2 3
3 2
4 1
有没有更好的方法来改变这个方法或使用连接? 谢谢!!!
【问题讨论】:
-
您列出了 3 个表,但您的查询只使用了第 4 个表。
-
@jarlh 谢谢你的回答。很抱歉,您能更简单地解释一下吗?