Kom godt i gang med SQL

Korrelationsnavn

Et korrelationsnavn er en kvalifikator, der bruges til at adskille forskellige måder at bruge et objekt. Et korrelationsnavn kan defineres i FROM-udtrykket i en forespørgsel og i det første udtryk i en UPDATE- eller DELETE-sætning. Det kan knyttes til en tabel, et udpluk eller et indflettet tabeludtryk, men kun inden for den sammenhæng, hvor det er defineret.

Således fastsætter udtrykket FROM STAFF S, ORG O bogstaverne S og O som korrelationsnavne til hhv. STAFF og ORG.

      SELECT NAME, DEPTNAME
         FROM STAFF S, ORG O
         WHERE O.MANAGER = S.ID

Når du har defineret et korrelationsnavn, kan du kun bruge korrelationsnavnet til at kvalificere objektet. Hvis du i ovenstående eksempel havde skrevet ORG.MANAGER=STAFF.ID, kan sætningen ikke udføres.

Korrelationsnavnet kan også bruges som et kort navn på et databaseobjekt. Det er lettere at skrive S end at skrive STAFF.

Med korrelationsnavne kan du lave dubletter af et objekt. Det er nyttigt, hvis du skal lave sammenligninger inden for tabellen. I nedenstående eksempel sammenlignes tabellen EMPLOYEE med en anden forekomst af samme tabel for at finde frem til alle medarbejderes afdelingsledere. Du får vist navnene på de medarbejdere, hvis stilling ikke er 'designer', samt deres afdelingsleder og afdelingsnummer.

     SELECT E2.FIRSTNME, E2.LASTNAME, E2.JOB, E1.FIRSTNME AS MGR_FIRSTNAME,
                           E1.LASTNAME AS MGR_LASTNAME, E1.WORKDEPT
        FROM EMPLOYEE E1, EMPLOYEE E2
        WHERE E1.WORKDEPT = E2.WORKDEPT
          AND E1.JOB = 'MANAGER'
          AND E2.JOB <> 'MANAGER'
          AND E2.JOB <> 'DESIGNER'

Resultatet er:

     FIRSTNME     LASTNAME   JOB      MGR_FIRSTNAME MGR_LASTNAME    WORKDEPT
     ------------ ---------- -------- ------------- --------------- --------
     DOLORES      QUINTANA   ANALYST  SALLY         KWAN            C01
     HEATHER      NICHOLLS   ANALYST  SALLY         KWAN            C01
     JAMES        JEFFERSON  CLERK    EVA           PULASKI         D21
     SALVATORE    MARINO     CLERK    EVA           PULASKI         D21
     DANIEL       SMITH      CLERK    EVA           PULASKI         D21
     SYBIL        JOHNSON    CLERK    EVA           PULASKI         D21
     MARIA        PEREZ      CLERK    EVA           PULASKI         D21
     ETHEL        SCHNEIDER  OPERATOR EILEEN        HENDERSON       E11
     JOHN         PARKER     OPERATOR EILEEN        HENDERSON       E11
     PHILIP       SMITH      OPERATOR EILEEN        HENDERSON       E11
     MAUDE        SETRIGHT   OPERATOR EILEEN        HENDERSON       E11
     RAMLAL       MEHTA      FIELDREP THEODORE      SPENSER         E21
     WING         LEE        FIELDREP THEODORE      SPENSER         E21
     JASON        GOUNOT     FIELDREP THEODORE      SPENSER         E21


[ Øverst på siden | Forrige side | Næste side | Indholdsfortegnelse | Stikordsregister ]