Visualizzazione dei risultati da 1 a 10 su 11

Hybrid View

  1. #1
    In SQL la query per mettere in join ed estrarre anche l'indirizzo del negozio relativo al venditore è la seguente:
    SELECT tab_prodotto.prodotto_id, tab_prodotto.venditore_id,tab_venditore.nome_negoz io
    FROM tab_prodotto
    INNER JOIN tab_venditore ON tab_prodotto.venditore_id=tab_venditore.venditore_ id

    devi essere però sicuro che nella tabella tab_venditore ci sia sempre il relativo record altrimenti ti perdi il record della tabella dei prodotti. Se non sei sicuro al 100% al posto di INNER JOIN usa LEFT OUTER JOIN

  2. #2
    Quote Originariamente inviata da smartsql Visualizza il messaggio
    In SQL la query per mettere in join ed estrarre anche l'indirizzo del negozio relativo al venditore è la seguente:
    SELECT tab_prodotto.prodotto_id, tab_prodotto.venditore_id,tab_venditore.nome_negoz io
    FROM tab_prodotto
    INNER JOIN tab_venditore ON tab_prodotto.venditore_id=tab_venditore.venditore_ id

    devi essere però sicuro che nella tabella tab_venditore ci sia sempre il relativo record altrimenti ti perdi il record della tabella dei prodotti. Se non sei sicuro al 100% al posto di INNER JOIN usa LEFT OUTER JOIN
    Qual'è la differenza fra i due JOIN?
    “spesso le grandi imprese nascono da piccole opportunità”
    Demostene

  3. #3
    Quote Originariamente inviata da vale&rug Visualizza il messaggio
    Qual'è la differenza fra i due JOIN?
    La differenza è che con INNER JOIN imponi che DEVE esserci sempre una relazione tra le 2 tabelle in assenza di una relazione tra un record della prima nella seconda tabella, il record della prima tabella non viene estratto. Nel caso di Left se anche capitasse che un record della prima non trovi nulla nella seconda tabella il record della prima viene estratto ugualmente.

    Nel caso esposto ipotizziamo che tra i vari record della tabella prodotti tu abbia il prodotto 4 che punta al venditore X che però non è presente nella tabella venditori.

    In caso di inner join avresti
    Prodotto Venditore Negozio
    1 Y NY
    2 K NK
    3 K NK
    ----------------------- Manca tutto record del prodotto 4

    In caso di left avresti
    Prodotto Venditore Negozio
    1 Y NY
    2 K NK
    3 K NK
    4 X NULL------- il prodotto 4 c'è ma la colonna Negozio è NULL

    La differenza è molto molto rilevante. In un certo senso la INNER "limita" la i record estratti a solo quelli per i quali esiste la relazione tra le tabelle, la left è meno limitante. l'uso dell'una o dell'altra formulazione dipende da cosa si vuole ottenere se a te non interessa mostrare prodotti per i quali non è individuabile un negozio usa INNER se per te rileva maggiormente esporre il prodotto anche se il negozio non è individuabile usa la LEFT.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.