Parti di un oggetto

Il problema

Schema relazionale

  • OGGETTO(IdOggetto, Nome, Quantità, ComponenteDi)

ComponenteDi è chiave esterna collegata a IdOggetto

Query

  1. La tabella degli oggetti
    SELECT *
    FROM   OGGETTO
  2. Gli oggetti ordinati
    SELECT   Nome
    FROM     OGGETTO
    ORDER BY Nome
  3. Gli oggetti che non sono parti di altri oggetti
    SELECT   Nome
    FROM     OGGETTO
    WHERE    ComponenteDi IS NULL
    ORDER BY OGGETTO.Nome
  4. Le associazioni tra oggetti
    SELECT   OGGETTO.Nome, PARTE.Nome, PARTE.Quantità
    FROM     OGGETTO INNER JOIN OGGETTO AS PARTE ON OGGETTO.IdOggetto = PARTE.ComponenteDi
    ORDER BY OGGETTO.Nome, PARTE.Nome