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)