0

私はこの質問をしています。私は乗り越えようとしています。私は何時間もこれをやろうとしてきました.誰かが私たちを正しい方向に向けることができれば、それは本当に素晴らしいことです.

これはドイツ語なので、英語に翻訳します。

問題があるのは (d) の部分だけです

(d) サラダを注文しないレストランの名前と Ort(Place) を与える SQL ステートメントを作成します。

期待される結果は次のようになります。

ダ マフィア : ゲッティンゲン
ベネチア : カッセル

ここに画像の説明を入力

4

2 に答える 2

3

LolCoderの回答には適用されませんが、サブクエリにnullがある場合はNOTINに注意することを忘れないでください。

これは、テーマにバリエーションがある別のアプローチです。内部結合を使用していても、正確には派手ではありません。あなたはおそらくそれらすべてを野生で見つけるでしょう。

私の好みは最初のものです。技術的には必要ありませんが、私は通常、「elsenull」についても明示しています。

-- A
SELECT name, min(ort) as ort
FROM kunde as k INNER JOIN Liefervertrag as l on l.pizzeria = k.name
GROUP by name
HAVING count(case when l.product = 'salat' then 1 else null end) = 0

-- B
SELECT name, min(ort) as ort
FROM kunde as k INNER JOIN Liefervertrag as l on l.pizzeria = k.name
GROUP by name
HAVING sum(case when l.product = 'salat' then 1 else 0 end) = 0

-- C
SELECT name, ort
FROM kunde as k INNER JOIN Liefervertrag as l on l.pizzeria = k.name
GROUP by name, ort
HAVING count(case when l.product = 'salat' then 1 else null end) = 0

-- D
SELECT name, ort
FROM kunde as k INNER JOIN Liefervertrag as l on l.pizzeria = k.name
GROUP by name, ort
HAVING sum(case when l.product = 'salat' then 1 else 0 end) = 0
于 2012-07-07T20:12:29.787 に答える
1

次のように試すことができます:

  SELECT name,ort FROM kunde WHERE name NOT IN (SELECT DISTINCT(pizzeria) FROM Liefervertrag WHERE product='salat')
于 2012-07-07T18:12:35.013 に答える