テーブル:SQLクエリの問題(正当性チェック)
- ビール(名前、製造業者)
- バー(名前、住所、ライセンス)
- セルズ(バー、ビール、価格)
- 酒飲み(名前、住所、電話)
- 好き(酒飲み、ビール)
- 常連(酒飲み、バー)
- フレンズ(drinker1、drinker2)
タスク:
- 二つ以上の飲酒
- に好か全てのビールが3つ以上の飲酒
- に好か全てのビールがアンナ
- の友人たちに好か全てのビールが安いビールを販売するすべてのバーを探す探します
:バー "99本のボトル"SELECT x name FROM Beers x, Drinkers y, Likes s WHERE y.name=s.drinker and s.beer=x.name GROUP BY x.name HAVING COUNT(s.drinker) >= 2;
クエリ#1から販売されているすべてのビールより
クエリ#2:
以前
クエリ#3と同じ。
SELECT x name
FROM Beers x, Friends y, Drinkers z, Likes p
WHERE z.name = "Anna"
AND z.name = y.drinker1
AND y.drinker2 = p.drinker
AND p.beer = x.name;
クエリ#4:
SELECT x.name
FROM Bars x, Sells y
WHERE x.name = y.bar
AND SOME(SELECT y.price) < ALL(SELECT t.price
FROM Sells t
WHERE t.bar = "99 bottles");
私は最後のものについて少し躊躇しています。私はそのようにSOMEを使用することを許可されましたか? select句に外部変数を使用してサブクエリを作成することはできますか?
[蹴り方が悪い:古いスタイルのジョインを使用](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins。 aspx) - ANSI - ** 92 ** SQL標準(** 25年**前)のold * style *カンマ区切りのテーブル*スタイルのリストが*適切な* ANSI 'JOIN'構文に置き換えられました。使用はお勧めしません –
はい、誰も私がSQLを踏みだすとすぐに教えてくれますが、それは私の先生が使っていることです。彼は私たちに、コースの後半でそれについて学ぶことを教えてくれました。 – daniel