0

id、title、description、keywordsの列を含むcakesというテーブルがあります。また、keywordsというテーブルがあり、ケーキが親になっています。キーワードテーブルには、idとkeywordの2つの列が含まれています。次の2つのクエリを作成する必要があります。

  1. チョコレート、ヘーゼルナッツ、イチゴなどの材料を入力する場合(コンマで区切ったキーワードはいくつでもかまいません)、すべてのキーワードを含むケーキを検索して結果を表示するためのクエリが必要です。すべてのキーワードを含むケーキのみを表示します。一致するケーキがない場合は、何も見つからないというメッセージが必要です。

  2. 検索ボックスに「似たようなケーキを探す」というラベルがあります。人がバニララズベリーまたは例を入力した場合、クエリはデータベースでケーキを見つけ、そのキーワードを他のケーキのキーワードと照合して結果を表示する必要があります。同じキーワードと同じ3つのキーワードの最小値を持つケーキのみを表示します。

これらのクエリの書き方がわからない。どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1

2
SELECT CakeID, CakeName
FROM TableName
WHERE IngredientName IN ('chocolate', 'hazelnut', 'strawberry' )
GROUP BY CakeID, CakeName
HAVING COUNT(*) = 3

または、すべてのケーキの材料に独自性が強制されていない場合は、DISTINCT

SELECT CakeID, CakeName
FROM TableName
WHERE IngredientName IN ('chocolate', 'hazelnut', 'strawberry' )
GROUP BY CakeID, CakeName
HAVING COUNT(DISTINCT IngredientName) = 3
于 2013-02-06T17:53:43.637 に答える