Pagina 1 di 1

Count Inner Join e stampa record con id non duplicati

MessaggioInviato: mer feb 06, 2013 4:21 am
da Alexander012
Salve,
ho seguito le vostre utili informazioni, ma ho ancora dei problemi con la mia query.

In parole povere effettuo una inner join su due tabelle e prelevo i dati uguali con la condizione ON, poi dovrei conteggiare i record che hanno lo stesso id e togliere i duplicati.
In parole povere da questa situazione:
User_id Nome_utente email
02 Alex asds@yahoo.it
02 Alex asds@yahoo.it
02 Alex asds@yahoo.it
03 Antonio sad@libero.it
05 Giulio ewtt34@gmail.com

dovrei avere stampato:
02 Alex asds@yahoo.it (3 risultati)
03 Antonio sad@libero.it (1 risultato)
05 Giulio ewtt34@gmail.com (1 risultato)

Ecco la select inner join:

Codice: Seleziona tutto
$query = "SELECT tabella_users.user_id, tabella_users.user_login, tabella.user_email, tabella2.link_id, tabella2.link_author FROM tabella INNER JOIN tabella2 ON tabella.user_id = tabella2_links.link_author ORDER BY tabella.user_id ASC";


In che modo posso inserire Count()e la stampa delle sole voci non duplicate?

Grazie sin da ora per la vostra professionalità e gentilezza

A presto e buona giornata ;)

Re: Count Inner Join e stampa record con id non duplicati

MessaggioInviato: gio feb 07, 2013 12:49 am
da Peppe690
fatto il join tra le tabelle, li puoi ragruppare per id, li conti e con la select estrai quello che ti interessa.
Esiste anche il costrutto distinct.

Re: Count Inner Join e stampa record con id non duplicati

MessaggioInviato: sab feb 16, 2013 8:47 pm
da Alexander012
Ok, ma il mio scopo non era di utilizzare distinct.

Grazie per la risposta ;)

Re: Count Inner Join e stampa record con id non duplicati

MessaggioInviato: sab feb 16, 2013 9:33 pm
da Andy94
Considerata una tabella che contiene i valori che tu hai citato nel primo post, una query del genere
Codice: Seleziona tutto
select *, count(user_id) FROM tabella_users GROUP BY user_id

Stampa questo risultato
Codice: Seleziona tutto
user_id    nome_utente    email    count(user_id)
2               Alex    asds@yahoo.it         3
3                Antonio    sad@libero.it           1
5              Giulio    ewtt34@gmail.com    1


Ora non ho i dati a disposizione per provare a fare un JOIN, ma l'implementazione di quanto sopra nella tua situazione non dovrebbe essere complessa. [^]

[ciao]