Visualizzazione dei risultati da 1 a 7 su 7

Discussione: MYSQL COUNT con JOIN

  1. #1

    MYSQL COUNT con JOIN

    Ciao amici,

    io ho 2 tabelle, una UTENTI con id_utente
    e una frasi con idutente_frase
    idutente_frase contiene il numero di ID dell' utente che ha inserito la frase.

    Io volendo fare una ricerca su tutto il database, e volenda raggruppare ognu utente con il numero di frasi che ha inserito uso questa query:

    SELECT id_utente, COUNT(idutente_albumfrase)AS numfrasi
    FROM
    utenti
    JOIN
    frasi

    L' ERRORE CHE MI DA è che gli utenti che hanno frasi, il loro numero NUMFRASI iltotale di frasi in tutto il database RADDOPPIATO e invece chi non ne ha scritte non appare proprio.


    ho provato anche con INNER JOIN

    questa QUERY che ero convinto funzionasse, invece restituisce il primo UTENTE con numero frasi totale a tutte le frasi nel DB:

    SELECT id_utente, count(idutente_frase) AS NUMERO
    FROM utenti INNER JOIN frasi ON id_utente= idutente_frase


    Cosa devo fare?


    Vi ringrazio in anticipo.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    SELECT u.id_utente, 
    count(f.idutente_frase) AS NUMERO
    FROM utenti as u
    left JOIN frasi as f ON u.id_utente= f.idutente_frase
    group by u.id_utente

  3. #3
    Originariamente inviato da nicola75ss
    codice:
    SELECT u.id_utente, 
    count(f.idutente_frase) AS NUMERO
    FROM utenti as u
    left JOIN frasi as f ON u.id_utente= f.idutente_frase
    group by u.id_utente

    Grazie,, sapresti spiegarmi la valenza delle u. e delle f.

    ti ringrazio tantissimo

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Sono semplicemente degli alias di tabella.
    In questo modo, nel caso le tabelle contengano campi con lo stesso nome, risolvo le ambiguità esplicitando i nomi dei campi anteponendo loro il nome della tabella stessa oppure l'alias come nel mio esempio.

  5. #5
    Originariamente inviato da nicola75ss
    Sono semplicemente degli alias di tabella.
    In questo modo, nel caso le tabelle contengano campi con lo stesso nome, risolvo le ambiguità esplicitando i nomi dei campi anteponendo loro il nome della tabella stessa oppure l'alias come nel mio esempio.
    a quanto sto capenda facendo delle prove,, aggiusta tutto il codice il TAG group by id_mc

    no?

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Il group by non è un tag. E' una clausola che consente di usare delle funzioni di aggregazione, nel tuo caso count(), raggruppando per determinate voci, nello specifico per l'identificativo dell'utente.

  7. #7
    Originariamente inviato da nicola75ss
    Il group by non è un tag. E' una clausola che consente di usare delle funzioni di aggregazione, nel tuo caso count(), raggruppando per determinate voci, nello specifico per l'identificativo dell'utente.
    yee, si scusami, non faccio mai attenzione a come definisco le stringhe ,, grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.