SELECT-Anfrage innerhalb eines SELECTS

Cherry07

Mitglied
Hallo,

ich mache grad die Übungsaufgaben von der Site: http://sqlzoo.net/1b.htm und komme da bei der Aufgabe 3a) net richtig weiter.
Deshalb möchte ich euch um Hilfe bitten.

3a. In which years was the Physics prize awarded but no Chemistry prize. (WARNING - this question is way too hard for this level, you will need to use sub queries or joins).

Meine Lösung wäre:
SELECT yr
FROM nobel
WHERE subject = 'Physics'
AND (SELECT yr FROM nobel WHERE subject <> 'Chemistry');

Vielen Dank schon mal.

Schönes WE und viele Grüße
cherry07
 
Mit Subquery z.B. so:
SQL:
SELECT DISTINCT n1.yr
FROM nobel n1
WHERE n1.subject = 'Physics'
AND NOT EXISTS (
  SELECT n2.yr
  FROM nobel n2
  WHERE n2.subject = 'Chemistry'
  AND n2.yr = n1.yr
)
Und mit Join so:
SQL:
SELECT DISTINCT n1.yr
FROM nobel n1
LEFT JOIN nobel n2 ON (
  n1.yr = n2.yr AND
  n2.subject = 'Chemistry'
)
WHERE n1.subject = 'Physics' AND ISNULL(n2.yr)
Grüße, Matthias
 
Zurück