Michael Hansen skrev:
> Jeg har brug for at ændre feltet isFolder i de rækker som har
> et parentId som er lig med et Id på en af de andre rækker.
Kan parentId være et vilkårligt tal, eller kun en eksisterende id-
værdi eller null? (det sidste kan opnås med referentiel integritet,
og det kan gøre forespørgslen enklere).
> Følgende SQL virker, men er sikker på det kan gøres meget
> simplere. Men hvordan ?
Hvilken database?
> UPDATE conTable
> SET isFolder = 1
> WHERE (owner = 'mbh') AND
> (id IN
> (SELECT t1.parentId FROM conTable t1 WHERE t1.parentId IN
> (SELECT t2.id FROM conTable t2))
> )
Et par muligheder (MSSQL-syntaks):
UPDATE conTable
SET isFolder = 1
WHERE parentId IS NOT NULL
UPDATE c
SET c.isFolder = 1
FROM conTable c INNER JOIN conTable cp
ON c.parentID = cp.id
UPDATE c
SET isFolder = 1
FROM conTable c
WHERE EXISTS (SELECT 1 FROM conTable
WHERE id = c.parentID)
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html