Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208

    [SQL] Inner Join o Left Join?

    Un saluto a tutto il forum.
    Ho dato un'occhiata al reference manual di MySql ma non essendo granchè pratico con l'inglese non ne sono venuto a capo.
    In pratica quando è più corretto usare INNER JOIN e quando LEFT JOIN?

  2. #2

    Re: [SQL] Inner Join o Left Join?

    Originariamente inviato da Mixio
    Un saluto a tutto il forum.
    Ho dato un'occhiata al reference manual di MySql ma non essendo granchè pratico con l'inglese non ne sono venuto a capo.
    In pratica quando è più corretto usare INNER JOIN e quando LEFT JOIN?
    INNER JOIN ti rende solo le uguaglianze richieste tra le due tabelle

    FROM TAB1 a
    INNER JOIN TAB2 b ON a.id = b.id

    ed equivale a scrivere:

    FROM TAB1 a, TAB2 b
    WHERE a.id = b.id

    mentre LEFT JOIN rende tutti i record della tabella di SX anche se non ci sono corrispondenze nella tabella di DX. Dove la tabella di SX e' la prima elencata, cioe' quella descritta in FROM.

    Nel caso di mancata corrispondenza del dato richiesto nella tabella di DX, questa rendera' NULL.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208
    Quindi scusami per capire meglio.

    In caso di INNER JOIN ottengo solo i record che soddisfino la condizione ON, invece con LEFT JOIN ottengo in qualsiasi caso un numero di record pari alla prima tabella e vengono uniti alla prima solo quelli della condizione ON.

    Ho capito bene? :master:

  4. #4
    Originariamente inviato da Mixio
    Quindi scusami per capire meglio.

    In caso di INNER JOIN ottengo solo i record che soddisfino la condizione ON, invece con LEFT JOIN ottengo in qualsiasi caso un numero di record pari alla prima tabella e vengono uniti alla prima solo quelli della condizione ON.

    Ho capito bene? :master:
    Si, vengono resi tutti i record della tabella di SX con LEFT JOIN oppure tutti quelli della tabella di DX con RIGHT JOIN.

    La tabella opposta rendera' solo le uguaglianze richieste in ON e NULL in caso di mancanza di corrispondenza. La ricerca dovrebbe poi essere puntualizzata da una condizione WHERE per ridurre le righe in output del result-set.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    208
    ok grazie Piero.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.