Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Problema con left join

  1. #1

    Problema con left joi

    Salve,
    ho due tabelle:
    negozi --> ID, nome
    escludinegozio --> ID, idnegozio

    io vorrei visualizzare tutti i negozi della tabella negozi il cui ID non è presente in escludinegozio.

    SELECT * FROM negozi LEFT JOIN escludinegozio ON escludinegozio.idnegozio = negozi.ID

    cosi però mi vede ugualmente tutti i negozi...

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    SELECT * FROM negozi LEFT JOIN escludinegozio ON escludinegozio.idnegozio <> negozi.ID


    la LEFT JOIN restituisce tutte le righe della tabella di sinistra , anche se non ci sono corrispondenze in quella di destra
    If you think your users are idiots, only idiots will use it. DropBox

  3. #3
    Originariamente inviato da homerbit
    SELECT * FROM negozi LEFT JOIN escludinegozio ON escludinegozio.idnegozio <> negozi.ID


    la LEFT JOIN restituisce tutte le righe della tabella di sinistra , anche se non ci sono corrispondenze in quella di destra
    Questa select è errata, in questo modo esegui una cross join moltiplicando i dati in output.

    @nikitoz78bs:
    Per escludere i risultati della seconda tabella puoi usare una left join controllando i valori che non corrispondono:

    codice:
    SELECT * FROM negozi LEFT JOIN escludinegozio ON escludinegozio.idnegozio = negozi.ID where escludinegozio.id is null
    Oppure semplicemente usare una where/not in:

    codice:
    SELECT * FROM negozi where id not in (select idnegozio from escludinegozio)
    O ancora una where/not exists:

    codice:
    SELECT * FROM negozi as n where not exists (select idnegozio from escludinegozio where idnegozio=n.id)
    xxx

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