Query

Status
Niet open voor verdere reacties.

kandinsky

Gebruiker
Lid geworden
14 mei 2008
Berichten
8
Dit levert mij 2 namen op
Select distinct dier.diernaam from dier,behandeling_datum,behandeling
Where behandeling_datum.dierid = dier.dierid and dier.soort = ‘hond’
And behandeling_datum.behandelingsid = (select behandeling.behandelingsid from behandeling where behandeling.soort = ‘vlooien’ and behandeling.diersoort = ‘hond’);

Nu wil ik alle namen uitgezonderd deze die ik met vorige query opvraag.
Heb dit als volgt gedaan.

Select dier.diernaam from dier where dier.soort = ‘hond’ and dier.diernaam <> any
(Select distinct dier.diernaam from dier,behandeling_datum,behandeling
Where behandeling_datum.dierid = dier.dierid and dier.soort = ‘hond’
And behandeling_datum.behandelingsid = (select behandeling.behandelingsid from behandeling where behandeling.soort = ‘vlooien’ and behandeling.diersoort = ‘hond’));

Maar dit wil alleen maar lukken als de subquery maar 1 naam bevat, indien er meerdere namen inzitten worden alle namen weergegeven. Iemand enig idee waar ik de mist in ga?
 
gebruik maken van NOT IN?
Code:
SELECT
    d.diernaam
FROM
    dier d
WHERE
    diernaam NOT IN (
        SELECT
            DISTINCT dier.diernaam
        FROM
            dier,
            behandeling_datum bd,
        WHERE
            bd.dierid = dier.dierid
        AND
            dier.soort = ‘hond’
        AND
            bd.behandelingsid = (
                SELECT
                    behandeling.behandelingsid
                FROM
                    behandeling
                WHERE
                    behandeling.soort = ‘vlooien’
                AND
                    behandeling.diersoort = ‘hond’
            )
    )
;
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan