- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- select mysql articolate
-
select mysql articolate
Salve,
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 divertimentoCiao!
-
[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?