Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [MySql] estrarre da una tabella dove gli id non sono presenti in un'altra tabella

    Ciao a tutti,

    ho un problemino con una query... in pratica io devo estrarre dati da una tabella (iscritti) solo se l'id univoco dell'iscirtto non è presente in una seconda tabella (variazioni)... questa query:

    SELECT *
    FROM iscritti
    WHERE iid NOT IN (SELECT iid FROM variazioni)

    è il modo migliore di farlo? ma soprattutto, da quali versioni di mysql è supportata? se il server su cui opererò non dovesse supportarla, quali alternative ho (apparte cambiare server ) ?

    grazie,

    r@p

  2. #2
    un'alternativa potrebbe essere questa, ma mi sembra troppo dispendiosa, considerato che questa query è solo una parte di tutta l'estrazione che devo fare:

    codice:
    	$iid = Array();
    	$query = $_MYSQL->query("SELECT iid FROM {$_MYSQL->_CONF['prefix']}iscritti_variazioni",FALSE);
    	while($result = $_MYSQL->fetch($query)){
    		$iid[] = $result['iid'];
    	}
    
    	$query = $_MYSQL->query("
    		SELECT * 
    		FROM {$_MYSQL->_CONF['prefix']}iscritti 
    		WHERE iscr_data>='2006-01-01' AND iscr_data<='2006-12-31' 
    			AND iid NOT IN ('".implode(',',$iid)."')
    	",FALSE);
    che dite? alternative?

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    select * from iscritti as tab1
    left join variazioni as tab2
    on tab1.iid = tab2.iid
    where tab2.iid is null

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.