Chr*_*ris 2 mysql relational-division
我在解决一项练习时遇到困难:
有一家餐厅,供应他们最喜欢的啤酒。
(是的,我们实际上在学校有这个:D)
我有 2 个可以使用的表:
我的解决方案是:OnStock % Favoritebeer
MySQL 中没有像 DIVISION 这样的东西。我有什么想法可以解决这个问题吗?我在维基百科上找到了以下内容:http : //en.wikipedia.org/wiki/Relational_algebra#Division_.28.C3.B7.29这正是我需要的,但我很难用 SQL 翻译它。
编辑:
这里的示例数据:http : //www.sqlfiddle.com/#!2/34e00
结果应该是:
Bucher Rolf
Mastroyanni Pepe
Meier Hans
Meier Hanspeter
Meier Hansruedi
Müller Heinrich
Peters Peter
Zarro Darween
Run Code Online (Sandbox Code Playgroud)
试试这个:
SELECT DISTINCT fb1.name, fb1.surname FROM favoriteBeer fb1
JOIN stock s ON fb1.beerName = s.beerName
GROUP BY fb1.name, fb1.surname, s.restaurant
HAVING COUNT(*) = (
SELECT COUNT(*) FROM favoriteBeer fb2
WHERE fb1.name = fb2.name AND fb1.surname = fb2.surname
)
Run Code Online (Sandbox Code Playgroud)
输出:
| NAME | SURNAME |
|-------------|-----------|
| Bucher | Rolf |
| Mastroyanni | Pepe |
| Meier | Hans |
| Meier | Hanspeter |
| Meier | Hansruedi |
| Müller | Heinrich |
| Peters | Peter |
| Zarro | Darween |
Run Code Online (Sandbox Code Playgroud)
在这里摆弄。