Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Alternativa a NOT IN

  1. #1

    Alternativa a NOT IN

    C'è un modo per evitare l'uso di NOT IN magari usando un qualche tipo di JOIN al suo posto?

    adesso ho una query del tipo:

    select X
    from Y
    where ... and X NOT IN (select X from Y where... group by... having ...)

    Solo che ci mette davvero troppo tempo (ordine di minuti), anche dopo aver creato un indice su X (che tra l'altro è anche chiave esterna e in teoria ce l'aveva già?)

    Una versione simile della query (che pero' mi dava un set piu' generico e non adava bene) usando solo JOIN ci metteva ordine di decimi di secondi, quindi non posso accettare che ci metta cosi' tanto...

  2. #2
    mi rispondo da solo, si puo' usare il left join:

    ad esempio

    select X
    from Y
    where ... and X NOT IN (select X from Y where... group by... having ...)
    diventa

    select X
    from Y
    left join
    (select X as W from Y where... group by... having...) as Z
    on Y.X = Z.W
    where Z.W is null
    and ...

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.