MySQL 如何获取与同一列中另一个组的值匹配的组?

MySQL how to get the group that match the value of another group in the same column?

Here are the tables:  

  Drinker (name, address)  
  Bar (name, address)  
  Beer (name, brewer)  
  Frequents (drinker, bar, times_a_week)  
  Likes (drinker, beer)  
  Serves (bar, beer, price) 

而且,问题是这样的:
找到那些与 Silvie Hume 喜欢同一组啤酒的饮酒者。

我的代码如下:

SELECT *  
FROM drinker d  
JOIN likes l1 ON d.Name = l1.Drinker  
WHERE l1.Beer IN (SELECT Beer FROM likes l2 WHERE l2.Drinker = 'Silvie Hume');  

好像我的输出return all drinks that match one of beers Silvie Hume like,我不知道如何select喜欢和Silvie Hume同一套啤酒的饮酒者.有什么帮助吗?谢谢!
我尝试用 = ALL 替换 IN,但它也没有用

一个选项在 Likes table:

上使用自联接
SELECT
    t1.drinker
FROM Likes t1
LEFT JOIN Likes t2
    ON t1.beer = t2.beer AND t2.drinker = 'Silvie Hume'
WHERE
    t1.drinker <> 'Silver Hume'
GROUP BY
    t1.drinker
HAVING
    COUNT(*) = COUNT(t2.beer) AND
    COUNT(*) = (SELECT COUNT(*) FROM Likes WHERE drinker = 'Silvie Hume');

作为解释,HAVING 子句中的第一个条件断言所有给定饮酒者的喜好都与 Silvie Hume 的喜好相匹配。第二个条件涵盖了给定饮酒者的所有喜好都匹配的边缘情况,但 Silvie Hume 也有其他一些喜好。因此,我们断言每个饮酒者的点赞数与 Silvie Hume 相同。