Frederik Sunne skrev:
> SELECT DISTINCT a.id_projekt FROM projekt a, person_ramme b,
> ramme c WHERE b.initialer='FS' and b.ID_ramme = c.ID_ramme and
> c.ID_projekt = a.id_projekt OR a.initialer = 'FS';
> Jeg kan ikke huske præcedens reglerne for boolske operatorer,
> så jeg ved ikke om det er fordi OR binder svagere end AND.
Hvis du er i tvivl så brug paranteser:
SELECT DISTINCT a.id_projekt
FROM projekt a, person_ramme b, ramme c
WHERE
    (
       b.initialer='FS'
       and b.ID_ramme = c.ID_ramme
       and c.ID_projekt = a.id_projekt        
       )
OR a.initialer = 'FS';
Det ville i mine øjne være lettere at overskue forespørgslen hvis
du brugte eksplicit join:
SELECT DISTINCT p.id_projekt
FROM projekt p LEFT OUTER JOIN ramme r
       ON p.id_project = c.ID_project
       LEFT OUTER JOIN person_ramme pr
       ON r.ID_ramme = pr.ID_ramme
WHERE  pr.initialer='FS'
OR     p.initialer = 'FS';
Der kan være tilfælde hvor en post fra person_ramme bliver
udelukket på grund af join-forbindelsen, uanset om den har
initialer = 'FS'. Understøtter databasen FULL OUTER JOIN kan man
slippe uden om det.
-- 
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - 
www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.