|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Rep. San Marino
Messaggi: 633
|
[SQL] Aiuto Query
Ho un problema con una query...
Campi: s_id (Chiave primaria) s_mid s_date s_message s_ip Voglio semplicemente vedere se uno o più ip (s_ip) sono associati a più utenti (s_mid), quindi controllare se più utenti condividono lo stesso ip DBMS: Mysql 5.0 Grazie Ultima modifica di _TeRmInEt_ : 10-05-2008 alle 21:06. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 82
|
Codice:
SELECT s_ip FROM your_table GROUP BY s_ip HAVING COUNT(s_ip)>1
__________________
Saigon, shit. I'm still only in Saigon. Ultima modifica di tæo : 10-05-2008 alle 21:38. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Sep 2004
Città: Rep. San Marino
Messaggi: 633
|
Quote:
Io voglio che mi venga mostrato se un s_ip è associato a più s_mid. Ciao |
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 82
|
ho dato per scontato che nella tua tabella le coppie (s_ip, s_mid) fossero univoche, invece dalla tua risposta mi sembra di capire che possono esistere più record con uguale utente e ip e quindi un semplice controllo sulla cardinalità dei gruppi di s_ip non funzionerebbe dato che considererebbe anche quelli con lo stesso s_mid.
alla luce di questo potrsti usare la seguente (scarsamente efficiente): Codice:
SELECT x.s_ip FROM your_table x WHERE x.s_mid IN (
SELECT y.s_mid FROM your_table y WHERE x.s_ip=y.s_ip AND x.s_mid<>y.s_mid
)
Codice:
SELECT x.s_ip FROM your_table x JOIN your_table y ON x.s_ip=y.s_ip WHERE x.s_mid<>y.s_mid
__________________
Saigon, shit. I'm still only in Saigon. Ultima modifica di tæo : 10-05-2008 alle 22:19. |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Sep 2004
Città: Rep. San Marino
Messaggi: 633
|
Quote:
Grazie |
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Sep 2005
Messaggi: 82
|
scusa, errore mio. aggiungi un DISTINCT dopo la prima SELECT, i.e.
Codice:
SELECT DISTINCT x.s_ip FROM your_table x JOIN your_table y ON x.s_ip=y.s_ip WHERE x.s_mid<>y.s_mid
__________________
Saigon, shit. I'm still only in Saigon. |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Alcuni dialetti SQL permettono la seguente
Codice:
SELECT s_ip FROM your_table GROUP BY s_ip HAVING COUNT(DISTINCT s_mid)>1
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 11-05-2008 alle 11:30. Motivo: sbagliato campo |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Rep. San Marino
Messaggi: 633
|
Perfetto grazie
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:30.





















