2012-01-30 23 views
2

私はかなりの時間この問題を解決しようとしており、出力が間違っています。誰もこれで私を助けることができますか?私はmysqlを使用しているので、完全に参加しません。 yyouありがとう3つのテーブルを結合するSQL

3テーブル:

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) 

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

質問私の答えは次のようになり、彼らは

が好きで、いくつかのビールをサーブ「すべての」バーを頻繁にすべての酒飲みのために頼みます

+1

この宿題はありますか? –

+0

サンプル入力と期待される出力を提供できますか? –

+0

@ypercube:nice edit。私は 'relational-division'タグを知っているのかどうかはわかりません! – onedaywhen

答えて

0

このように:

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

うまくいかない場合は、データの例を投稿できますか?

関連する問題