- Home
- Categorie
- Coding e Sistemistica
- Coding
- select mysql articolate
- 
							
							
							
							
							select mysql articolateSalve, non tutti mi conoscete ma spesso e volentieri mi ritrovo in situazioni alquanto complesse se non c'è un no stop! bhè oggi mi affiderò io a voi  ho bisogno che una select mi stampi alcuni nomi eliminandone altri già presenti in un'altra tabella: mi spiegherò meglio.. ho una tabella così composta: Nome tabella persone 
 colonna(unica) elenco (qui dentro ci sono solo nomi di persone)e l'altra composta: Nome tabella richieste 
 colonna(1) richiedente(qui dentro ci sono solo nomi di persone)
 colonna(2) invitante(qui dentro ci sono solo nomi di persone)ora la mia query dovrebbe stamparmi solo e soltanto i nomi presenti in "persone" escludendo i nomi che sono presenti in "richiedente" ed "invitante" quindi: se io avessi tabella persone tizio 
 caio
 sempronioe nella tabella richieste tizio|caio la query dovrebbe stamparmi solo sempronio. spero abbiate capito e che mi sappiate aiutare io stò ancora sclerando  
 
- 
							
							
							
							
							
Prova così: SELECT persone.elenco FROM persone, richieste WHERE persone.elenco NOT IN (richieste.richiedente, richieste.invitante); Ciao! 
 
- 
							
							
							
							
							nn dà errori ma non mi stampa nulla  
 
- 
							
							
							
							
							
Strano, ho fatto un test con Tizio, Caio e Sempronio ma funziona bene  Ciao! 
 
- 
							
							
							
							
							mi posti il codice utilizzato da te? magari sono io che erro  non si sà mai  
 
- 
							
							
							
							
							
Io ho creato il database a mano, senza script. 
 Questo è il dump file:-- SQL Dump -- -- Host: localhost -- Generato il: 21 Ott, 2007 at 10:35 PM -- Versione MySQL: 5.0.27 -- -- Database: `test` -- CREATE DATABASE `test` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `test`; -- -------------------------------------------------------- -- -- Struttura della tabella `persone` -- CREATE TABLE `persone` ( `elenco` varchar(20) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dump dei dati per la tabella `persone` -- INSERT INTO `persone` (`elenco`) VALUES ('tizio'), ('tizio'), ('caio'), ('sempronio'), ('caio'); -- -------------------------------------------------------- -- -- Struttura della tabella `richieste` -- CREATE TABLE `richieste` ( `richiedente` varchar(20) NOT NULL, `invitante` varchar(20) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Dump dei dati per la tabella `richieste` -- INSERT INTO `richieste` (`richiedente`, `invitante`) VALUES ('tizio', 'caio'), ('caio', 'tizio');Ovviamente la query di interrogazione è quella postata precedentemente. 
 Buon divertimento Ciao! 
 
- 
							
							
							
							
							[php] 
 SELECT elenco FROM persone
 WHERE persone.elenco NOT IN (SELECT DISTINCT richiedente FROM richieste)
 AND persone.elenco NOT IN (SELECT DISTINCT invitante FROM richieste);
 [/php]non so a te ma a me così funge  
 
- 
							
							
							
							
							
Ha me funziona anche nell'altro modo. Mistero!  
 
- 
							
							
							
							
							
@Sups said: Ha me funziona anche nell'altro modo. Mistero!  
 Sicuro che l'altro modo sia SQL standard?