私はこの質問をしています。私は乗り越えようとしています。私は何時間もこれをやろうとしてきました.誰かが私たちを正しい方向に向けることができれば、それは本当に素晴らしいことです.
これはドイツ語なので、英語に翻訳します。
問題があるのは (d) の部分だけです
(d) サラダを注文しないレストランの名前と Ort(Place) を与える SQL ステートメントを作成します。
期待される結果は次のようになります。
ダ マフィア : ゲッティンゲン
ベネチア : カッセル
私はこの質問をしています。私は乗り越えようとしています。私は何時間もこれをやろうとしてきました.誰かが私たちを正しい方向に向けることができれば、それは本当に素晴らしいことです.
これはドイツ語なので、英語に翻訳します。
問題があるのは (d) の部分だけです
(d) サラダを注文しないレストランの名前と Ort(Place) を与える SQL ステートメントを作成します。
期待される結果は次のようになります。
ダ マフィア : ゲッティンゲン
ベネチア : カッセル
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
次のように試すことができます:
SELECT name,ort FROM kunde WHERE name NOT IN (SELECT DISTINCT(pizzeria) FROM Liefervertrag WHERE product='salat')