Natural join

di il
1 risposte

Natural join

Ciao non riesco a capire cosa è la natural join ho trovato la seguente definizione confronta colonne di tabelle con diverse nome ma non ho capito che confronto fa...mi potete fare un esempio spiegandomi facilmente cosa è

1 Risposte

  • Re: Natural join


    Ciao,
    allora il NATURAL JOIN è una delle operazioni JOIN che coinvolgono più tabelle.
    Per spiegare cos'è, mi aiuto con un esempio; consideriamo il seguente schema di base di dati:

    Recluta(Codice,Cognome,Nome,Attrezzatura)
    Attrezzatura(Codice,Descrizione)

    Quello che ci interessa è conoscere i dati della recluta nonchè dell'attrezzatura in dotazione ad una determinata recluta.
    Bene, questa query non interessa una sola tabella bensì due. Come risolvere il problema?
    La soluzione è "modificare" la SELECT di base in questo modo:
    SELECT Recluta.codice, Cognome, Nome, Attrezzatura.Descrizione
    FROM Recluta, Attrezzatura
    WHERE (Recluta.Attrezzatura=Attrezzatura.Codice).
    In pratica se ho due entità legate da una relazione con rapporto di cardinalità (1:N) e sono interessato ai dati contenute in entrambe le istanze di entità, ne faccio prima il prodotto cartesiano (SELECT ... FROM ...) poi seleziono le tuple che hanno almeno un elemento del dominio comune (Recluta.Attrezzatura e Attrezzatura.Codice) uguale (WHERE).
    Spero sia tutto chiaro, in ogni caso chiedi pure.
Devi accedere o registrarti per scrivere nel forum
1 risposte