- Home
- Categorie
- Coding e Sistemistica
- PHP
- Aiuto per query
-
Aiuto per query
Ho un problema per estrapolare idati da una tabella.
per riassumere i dati della tabella sono in quasto modo:
UTENTE COLONNA1
1 S
1 S
1 N
1 N
1 S
2 N
2 S
2 N
3 S
3 Sdovrei estrapolare tutti i dati di ogni utente , se nella colonna1 è presente anche solo una volta il valore n
Ho creato una subquery , ma impiega 50 secondi per l'elaborazione...
ecco la subquery:
SELECT tabella1.utente AS utente, tabella1. *
FROMtabella1
WHERE utente = ANY(
SELECT tabella1.utente AS utente
FROMtabella1
WHERE tabella1.colonna1 = "N"
GROUP BY tabella1.utente
)vi prego aiutatemi che è importante!
-
... la formattazione ha tolto gli spazi
i numeri sono la prima colonna , le lettere sono la seconda.
-
SELECT DISTINCT * FROM tabella1 WHERE colonna1 LIKE "n";
-
Grazie SHAD,
la query è giusta ma il mio problema è che, devo selezionare tutti i record di un utente, che abba almeno un record con 'n' nella colonna1
La tua query seleziona solo gli 'n'.:(
Nelle'esempio che ho riportato la query dovrebbe darmi:
1 S
1 S
1 N
1 N
1 S
2 N
2 S
2 Neliminando solo l'utente 3 che non contiene 'n' nella colonna1
-
Ah scusa, non avevo capito bene. Allora basta che modifichi quella di prima così...almeno credo dato che non posso provarla e sto andando ad occhio:
SELECT * FROM tabella1 WHERE utente IN (SELECT DISTINCT * FROM tabella1 WHERE colonna1 LIKE "n");
-
mmmm.
la query dopo 60 secondi non ha fornito nessun risultato:?
-
Vabbè, studiatela un pò, modificala e facci sapere come andava fatta.
Il concetto è che ti serve una prima query che ti fornisca un elenco di utenti che abbiano almeno una N. Poi devi fare una seconda query esterna che da quell'elenco trovi tutti i dati di quegli utenti.
-
In effetti credo che non ci sia alternativa.
L'unica soluzione che mi viene in mente è fare 2 query.
Con questa:
SELECT tabella1.utente AS utente, tabella1. *
FROMtabella1
WHERE utente = ANY(
SELECT tabella1.utente AS utente
FROMtabella1
WHERE tabella1.colonna1 = "N"
GROUP BY tabella1.utente
)ottengo il risultato che voglio , ma il server ci impiega 50 secondi ad eseguirla
grazie per l'aiuto comunque