2012-01-30 223 views
2

我想解决这个问题很长一段时间,输出是错误的。谁能帮我这个?我正在使用mysql,所以完全连接不起作用。谢谢yyou加入3个表SQL

3个表:

Frequents (attributes: drinker, bar, times_a_week), 
Likes (attributes: drinker, beer), 
Serves (attributes: bar, beer, price), 

的问题要求所有谁频繁的“每一个”的酒吧,成为一些啤酒,他们喜欢

我的回答是这样的饮酒者:

SELECT drinker 
FROM frequents 
WHERE drinker NOT IN (SELECT f.drinker FROM frequents f 
        JOIN likes l ON f.drinker=l.drinker 
        LEFT JOIN serves s ON l.beer=s.beer 
        AND s.bar=f.bar 
        WHERE s.bar IS NULL) 
+1

这是功课吗? – 2012-01-30 06:51:46

+0

您能提供样品输入和预期输出吗? – 2012-01-30 10:12:32

+0

@ypercube:很好的编辑。我不确定我是否知道'关系分割'标签! – onedaywhen 2012-01-30 13:13:47

回答

0

这个怎么样:

select * 
from Frequents 
where bar in (select bar from Serves S join Likes L on S.beer=l.beer) 

如果它不起作用,你可以发布一些你的数据的例子吗?